diff --git a/include/battle/battle_controller.h b/include/battle/battle_controller.h index e68ad2c6e6..715cde0f8e 100644 --- a/include/battle/battle_controller.h +++ b/include/battle/battle_controller.h @@ -2,69 +2,69 @@ #define POKEPLATINUM_BATTLE_BATTLE_CONTROLLER_H #include "struct_decls/battle_system.h" +#include "struct_defs/move_animation.h" #include "battle/battle_context.h" #include "battle/battle_message.h" #include "battle/struct_ov16_0224DDA8.h" -#include "battle/struct_ov16_02265BBC.h" void BattleController_TryRecvLocalMessage(BattleSystem *battleSys, int recipient); -void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battlerId); -void BattleController_EmitSetEncounter(BattleSystem *battleSys, int battlerId); -void BattleController_EmitShowEncounter(BattleSystem *battleSys, int battlerId); -void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battlerId, int capturedBall, int param3); -void BattleController_EmitReturnPokemon(BattleSystem *battleSys, BattleContext *battleCtx, int battlerId); -void BattleController_EmitOpenCaptureBall(BattleSystem *battleSys, int battlerId, int ball); -void BattleController_EmitDeletePokemon(BattleSystem *battleSys, int battlerId); -void BattleController_EmitSetTrainerEncounter(BattleSystem *battleSys, int battlerId); -void BattleController_EmitThrowTrainerBall(BattleSystem *battleSys, int battlerId, int ballTypeIn); -void BattleController_EmitSlideTrainerOut(BattleSystem *battleSys, int battlerId); -void BattleController_EmitSlideTrainerIn(BattleSystem *battleSys, int battlerId, int posIn); +void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battler); +void BattleController_EmitSetEncounter(BattleSystem *battleSys, int battler); +void BattleController_EmitShowEncounter(BattleSystem *battleSys, int battler); +void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battler, int capturedBall, int param3); +void BattleController_EmitReturnPokemon(BattleSystem *battleSys, BattleContext *battleCtx, int battler); +void BattleController_EmitOpenCaptureBall(BattleSystem *battleSys, int battler, int ball); +void BattleController_EmitDeletePokemon(BattleSystem *battleSys, int battler); +void BattleController_EmitSetTrainerEncounter(BattleSystem *battleSys, int battler); +void BattleController_EmitThrowTrainerBall(BattleSystem *battleSys, int battler, int ballTypeIn); +void BattleController_EmitSlideTrainerOut(BattleSystem *battleSys, int battler); +void BattleController_EmitSlideTrainerIn(BattleSystem *battleSys, int battler, int posIn); void BattleController_EmitSlideHealthbarIn(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int delay); void BattleController_EmitSlideHealthbarOut(BattleSystem *battleSys, int battler); void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot); -void ov16_022656D4(BattleSystem *battleSys, int battlerId, int command); +void ov16_022656D4(BattleSystem *battleSys, int battler, int command); void BattleController_EmitShowMoveSelectMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void ov16_02265790(BattleSystem *battleSys, int battlerId, int command); +void ov16_02265790(BattleSystem *battleSys, int battler, int command); void BattleCommand_EmitShowTargetSelectMenu(BattleSystem *battleSys, BattleContext *battleCtx, int range, int battler); -void ov16_022658CC(BattleSystem *battleSys, int battlerId, int command); +void ov16_022658CC(BattleSystem *battleSys, int battler, int command); void BattleController_EmitShowBagMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void ov16_02265A70(BattleSystem *battleSys, int battlerId, BattleItemUse message); -void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int listMode, int canSwitch, int doubles); -void ov16_02265B10(BattleSystem *battleSys, int battlerId, int command); -void BattleController_EmitShowYesNoMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int promptMsg, int yesnoType, int move, int nickname); +void ov16_02265A70(BattleSystem *battleSys, int battler, BattleItemUse message); +void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int listMode, int canSwitch, int doublesSelection); +void ov16_02265B10(BattleSystem *battleSys, int battler, int command); +void BattleController_EmitShowYesNoMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int promptMsg, int yesNoType, int move, int nickname); void BattleController_EmitPrintAttackMessage(BattleSystem *battleSys, BattleContext *battleCtx); void BattleController_EmitPrintMessage(BattleSystem *battleSys, BattleContext *battleCtx, BattleMessage *battleMsg); void BattleController_EmitPlayMoveAnimation(BattleSystem *battleSys, BattleContext *battleCtx, u16 param2); void BattleController_EmitPlayMoveAnimationA2D(BattleSystem *battleSys, BattleContext *battleCtx, u16 param2, int attacker, int defender); -void BattleController_EmitFlickerBattlerSprite(BattleSystem *battleSys, int battlerId, u32 unused); +void BattleController_EmitFlickerBattlerSprite(BattleSystem *battleSys, int battler, u32 unused); void BattleController_EmitUpdateHPGauge(BattleSystem *battleSys, BattleContext *battleCtx, int battler); void BattleController_EmitUpdateExpGauge(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int curExp); void BattleController_EmitPlayFaintingSequence(BattleSystem *battleSys, BattleContext *battleCtx, int battler); void BattleController_EmitPlaySound(BattleSystem *battleSys, BattleContext *battleCtx, int sdatID, int battler); void BattleController_EmitFadeOut(BattleSystem *battleSys, BattleContext *battleCtx); -void BattleController_EmitToggleVanish(BattleSystem *battleSys, int battlerId, int toggle); -void BattleController_EmitSetStatusIcon(BattleSystem *battleSys, int battlerId, int status); -void BattleController_EmitTrainerMessage(BattleSystem *battleSys, int battlerId, int msg); +void BattleController_EmitToggleVanish(BattleSystem *battleSys, int battler, int toggle); +void BattleController_EmitSetStatusIcon(BattleSystem *battleSys, int battler, int status); +void BattleController_EmitTrainerMessage(BattleSystem *battleSys, int battler, int msg); void BattleController_EmitPlayStatusEffect(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int param3); void BattleController_EmitPlayStatusEffectAToD(BattleSystem *battleSys, BattleContext *battleCtx, int attacker, int defender, int param4); void BattleController_EmitRecallMessage(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot); void BattleController_EmitSendOutMessage(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot); void BattleController_EmitBattleStartMessage(BattleSystem *battleSys, BattleContext *battleCtx, int battler); void BattleController_EmitLeadMonMessage(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void BattleController_EmitPlayLevelUpAnimation(BattleSystem *battleSys, int battlerId); +void BattleController_EmitPlayLevelUpAnimation(BattleSystem *battleSys, int battler); void BattleController_EmitSetAlertMessage(BattleSystem *battleSys, int battler, BattleMessage msg); -void ov16_022661B0(BattleSystem *battleSys, int battlerId); +void ov16_022661B0(BattleSystem *battleSys, int battler); void BattleController_EmitRefreshHPGauge(BattleSystem *battleSys, BattleContext *battleCtx, int battler); void BattleController_EmitUpdatePartyMon(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void ov16_02266460(BattleSystem *battleSys, int battlerId); +void ov16_02266460(BattleSystem *battleSys, int battler); void BattleController_EmitStopGaugeAnimation(BattleSystem *battleSys, int battler); void BattleController_EmitRefreshPartyStatus(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int move); -void BattleController_EmitForgetMove(BattleSystem *battleSys, int battlerId, int move, int slot); -void BattleController_EmitSetMosaic(BattleSystem *battleSys, int battlerId, int param2, int wait); -void BattleController_EmitChangeWeatherForm(BattleSystem *battleSys, int battlerId); -void BattleController_EmitUpdateBG(BattleSystem *battleSys, int battlerId); -void BattleController_EmitClearTouchScreen(BattleSystem *battleSys, int battlerId); +void BattleController_EmitForgetMove(BattleSystem *battleSys, int battler, int move, int slot); +void BattleController_EmitSetMosaic(BattleSystem *battleSys, int battler, int param2, int wait); +void BattleController_EmitChangeWeatherForm(BattleSystem *battleSys, int battler); +void BattleController_EmitUpdateBG(BattleSystem *battleSys, int battler); +void BattleController_EmitClearTouchScreen(BattleSystem *battleSys, int battler); /** * @brief Push a command to the I/O queue to show the party gauge at the start of a battle for a @@ -113,20 +113,20 @@ void BattleController_EmitLoadPartyGaugeGraphics(BattleSystem *battleSys); * @param battleSys */ void BattleController_EmitFreePartyGaugeGraphics(BattleSystem *battleSys); -void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battlerId, int battlerType, int record); -void BattleController_EmitLinkWaitMessage(BattleSystem *battleSys, int battler); +void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battler, int battlerType, int record); +void BattleController_EmitPrintLinkWaitMessage(BattleSystem *battleSys, int battler); void BattleController_EmitRestoreSprite(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void BattleController_EmitSpriteToOAM(BattleSystem *battleSys, int battlerId); -void BattleController_EmitOAMToSprite(BattleSystem *battleSys, int battlerId); +void BattleController_EmitSpriteToOAM(BattleSystem *battleSys, int battler); +void BattleController_EmitOAMToSprite(BattleSystem *battleSys, int battler); void BattleController_EmitResultMessage(BattleSystem *battleSys); void BattleController_EmitEscapeMessage(BattleSystem *battleSys, BattleContext *battleCtx); void BattleController_EmitForfeitMessage(BattleSystem *battleSys); void BattleController_EmitRefreshSprite(BattleSystem *battleSys, BattleContext *battleCtx, int battler); void BattleController_EmitPlayMoveHitSoundEffect(BattleSystem *battleSys, BattleContext *battleCtx, int battler); -void BattleController_EmitPlayMusic(BattleSystem *battleSys, int battlerId, int bgmID); +void BattleController_EmitPlayMusic(BattleSystem *battleSys, int battler, int bgmID); void BattleController_EmitSubmitResult(BattleSystem *battleSys); void BattleController_EmitClearMessageBox(BattleSystem *battleSys); -void BattleController_EmitClearCommand(BattleSystem *battleSys, int battlerId, int command); +void BattleController_EmitClearCommand(BattleSystem *battleSys, int battler, int command); BOOL BattleController_RecvCommMessage(BattleSystem *battleSys, void *data); void BattleController_SetMoveAnimation(BattleSystem *battleSys, BattleContext *battleCtx, MoveAnimation *animation, int param3, int param4, int attacker, int defender, u16 move); diff --git a/include/battle/battle_display.h b/include/battle/battle_display.h index f5c6d3a936..4d095f9e88 100644 --- a/include/battle/battle_display.h +++ b/include/battle/battle_display.h @@ -1,27 +1,27 @@ -#ifndef POKEPLATINUM_OV16_0225CBB8_H -#define POKEPLATINUM_OV16_0225CBB8_H +#ifndef POKEPLATINUM_BATTLE_BATTLE_DISPLAY_H +#define POKEPLATINUM_BATTLE_BATTLE_DISPLAY_H #include "struct_decls/battle_system.h" #include "struct_defs/battler_data.h" +#include "struct_defs/move_animation.h" #include "battle/battle_message.h" #include "battle/healthbar.h" #include "battle/message_defs.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle/struct_ov16_0226C378.h" #include "pokemon_sprite.h" void ov16_0225CBB8(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *battlerData, MonEncounterMessage *message); -void ov16_0225CE1C(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message); -void ov16_0225CF70(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message); -void ov16_0225D118(BattleSystem *battleSys, BattlerData *battlerData, MonReturnMessage *message); -void ov16_0225D1C4(BattleSystem *battleSys, BattlerData *battlerData, CaptureOpenBallMessage *message); -void ov16_0225D228(BattleSystem *battleSys, BattlerData *battlerData, TrainerEncounterMessage *message); -void ov16_0225D360(BattleSystem *battleSys, BattlerData *battlerData, TrainerThrowBallMessage *message); -void ov16_0225D3CC(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225D414(BattleSystem *battleSys, BattlerData *battlerData, TrainerSlideInMessage *message); +void BattleDisplay_InitTaskSetEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonEncounterMessage *message); +void BattleDisplay_InitTaskShowEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message); +void BattleDisplay_InitTaskShowPokemon(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message); +void BattleDisplay_InitTaskReturnPokemon(BattleSystem *battleSys, BattlerData *battlerData, MonReturnMessage *message); +void BattleDisplay_InitTaskOpenCaptureBall(BattleSystem *battleSys, BattlerData *battlerData, OpenCaptureBallMessage *message); +void BattleDisplay_InitTaskSetTrainerEncounter(BattleSystem *battleSys, BattlerData *battlerData, TrainerEncounterMessage *message); +void BattleDisplay_InitTaskThrowTrainerBall(BattleSystem *battleSys, BattlerData *battlerData, TrainerThrowBallMessage *message); +void BattleDisplay_InitTaskSlideTrainerOut(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskSlideTrainerIn(BattleSystem *battleSys, BattlerData *battlerData, TrainerSlideInMessage *message); /** * @brief Slide the healthbar into the screen. @@ -30,7 +30,7 @@ void ov16_0225D414(BattleSystem *battleSys, BattlerData *battlerData, TrainerSli * @param battlerData * @param healthbarData */ -void BattleDisplay_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battlerData, HealthbarData *healthbarData); +void BattleDisplay_InitTaskSlideHealthbarIn(BattleSystem *battleSys, BattlerData *battlerData, HealthbarData *healthbarData); /** * @brief Slide the healthbar out of the screen. @@ -38,14 +38,14 @@ void BattleDisplay_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battle * @param battleSys * @param battlerData */ -void BattleDisplay_SlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225D5B8(BattleSystem *battleSys, BattlerData *battlerData, CommandSetMessage *message); -void ov16_0225D698(BattleSystem *battleSys, BattlerData *battlerData, MoveSelectMenuMessage *message); -void ov16_0225D708(BattleSystem *battleSys, BattlerData *battlerData, TargetSelectMenuMessage *message); -void ov16_0225D794(BattleSystem *battleSys, BattlerData *battlerData, BagMenuMessage *message); -void ov16_0225D840(BattleSystem *battleSys, BattlerData *battlerData, PartyMenuMessage *message); -void ov16_0225D8AC(BattleSystem *battleSys, BattlerData *battlerData, YesNoMenuMessage *message); -void ov16_0225D8F0(BattleSystem *battleSys, BattlerData *battlerData, AttackMsgMessage *message); +void BattleDisplay_InitTaskSlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskSetCommandSelection(BattleSystem *battleSys, BattlerData *battlerData, CommandSetMessage *message); +void BattleDisplay_InitTaskShowMoveSelectMenu(BattleSystem *battleSys, BattlerData *battlerData, MoveSelectMenuMessage *message); +void BattleDisplay_InitTaskShowTargetSelectMenu(BattleSystem *battleSys, BattlerData *battlerData, TargetSelectMenuMessage *message); +void BattleDisplay_InitTaskShowBagMenu(BattleSystem *battleSys, BattlerData *battlerData, BagMenuMessage *message); +void BattleDisplay_InitTaskShowPartyMenu(BattleSystem *battleSys, BattlerData *battlerData, PartyMenuMessage *message); +void BattleDisplay_InitTaskShowYesNoMenu(BattleSystem *battleSys, BattlerData *battlerData, YesNoMenuMessage *message); +void BattleDisplay_PrintAttackMessage(BattleSystem *battleSys, BattlerData *battlerData, AttackMsgMessage *message); /** * @brief Print a message to the screen. @@ -55,25 +55,25 @@ void ov16_0225D8F0(BattleSystem *battleSys, BattlerData *battlerData, AttackMsgM * @param battleMsg */ void BattleDisplay_PrintMessage(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg); -void ov16_0225D9A8(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnimation); -void ov16_0225DA44(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225DA74(BattleSystem *battleSys, BattlerData *battlerData, HPGaugeUpdateMessage *message); -void ov16_0225DB00(BattleSystem *battleSys, BattlerData *battlerData, ExpGaugeUpdateMessage *message); -void ov16_0225DB74(BattleSystem *battleSys, BattlerData *battlerData, FaintingSequenceMessage *message); -void ov16_0225DC4C(BattleSystem *battleSys, BattlerData *battlerData, PlaySoundMessage *message); -void ov16_0225DC7C(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225DCB0(BattleSystem *battleSys, BattlerData *battlerData, ToggleVanishMessage *message); -void ov16_0225DD44(BattleSystem *battleSys, BattlerData *battlerData, SetStatusIconMessage *message); -void ov16_0225DD7C(BattleSystem *battleSys, BattlerData *battlerData, TrainerMsgMessage *message); -void ov16_0225DDD8(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message); -void ov16_0225DE30(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message); -void ov16_0225DE88(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225DEDC(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message); -void ov16_0225DF34(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225DF6C(BattleSystem *battleSys, BattlerData *battlerData, AlertMsgMessage *message); -void ov16_0225E008(BattleSystem *battleSys, BattlerData *battlerData, RefreshHPGaugeMessage *message); -void ov16_0225E0BC(BattleSystem *battleSys, BattlerData *battlerData, ForgetMoveMessage *message); -void ov16_0225E0F4(BattleSystem *battleSys, BattlerData *battlerData, MosaicSetMessage *message); +void BattleDisplay_InitTaskSetMoveAnimation(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnim); +void BattleDisplay_InitTaskFlickerBattler(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskUpdateHPGauge(BattleSystem *battleSys, BattlerData *battlerData, HPGaugeUpdateMessage *message); +void BattleDisplay_InitTaskUpdateExpGauge(BattleSystem *battleSys, BattlerData *battlerData, ExpGaugeUpdateMessage *message); +void BattleDisplay_InitTaskPlayFaintingSequence(BattleSystem *battleSys, BattlerData *battlerData, FaintingSequenceMessage *message); +void BattleDisplay_PlaySound(BattleSystem *battleSys, BattlerData *battlerData, PlaySoundMessage *message); +void BattleDisplay_InitTaskFadeOut(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskToggleVanish(BattleSystem *battleSys, BattlerData *battlerData, ToggleVanishMessage *message); +void BattleDisplay_SetStatusIcon(BattleSystem *battleSys, BattlerData *battlerData, SetStatusIconMessage *message); +void BattleDisplay_PrintTrainerMessage(BattleSystem *battleSys, BattlerData *battlerData, TrainerMsgMessage *message); +void BattleDisplay_PrintRecallMessage(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message); +void BattleDisplay_PrintSendOutMessage(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message); +void BattleDisplay_PrintBattleStartMessage(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_PrintLeadMonMessage(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message); +void BattleDisplay_InitTaskPlayLevelUpAnimation(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_SetAlertMessage(BattleSystem *battleSys, BattlerData *battlerData, AlertMsgMessage *message); +void BattleDisplay_RefreshHPGauge(BattleSystem *battleSys, BattlerData *battlerData, RefreshHPGaugeMessage *message); +void BattleDisplay_InitTaskForgetMove(BattleSystem *battleSys, BattlerData *battlerData, ForgetMoveMessage *message); +void BattleDisplay_InitTaskSetMosaic(BattleSystem *battleSys, BattlerData *battlerData, MosaicSetMessage *message); /** * @brief Show the start-of-battle party gauge. @@ -82,7 +82,7 @@ void ov16_0225E0F4(BattleSystem *battleSys, BattlerData *battlerData, MosaicSetM * @param battlerData * @param partyGauge */ -void BattleDisplay_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); +void BattleDisplay_InitTaskShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); /** * @brief Hide the start-of-battle party gauge. @@ -91,7 +91,7 @@ void BattleDisplay_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerDat * @param battlerData * @param partyGauge */ -void BattleDisplay_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); +void BattleDisplay_InitTaskHideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); /** * @brief Show the mid-battle party gauge. @@ -100,7 +100,7 @@ void BattleDisplay_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerDat * @param battlerData * @param partyGauge */ -void BattleDisplay_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); +void BattleDisplay_InitTaskShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); /** * @brief Hide the mid-battle party gauge. @@ -109,18 +109,18 @@ void BattleDisplay_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerD * @param battlerData * @param partyGauge */ -void BattleDisplay_HidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); -void ov16_0225E23C(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225E294(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnimation); -void ov16_0225E2C8(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225E300(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225E338(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225E38C(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message); -void ov16_0225E3E0(BattleSystem *battleSys, BattlerData *battlerData); -void ov16_0225E434(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnimation); -void ov16_0225E468(BattleSystem *battleSys, BattlerData *battlerData, MoveHitSoundMessage *message); -void ov16_0225E4C8(BattleSystem *battleSys, BattlerData *battlerData, MusicPlayMessage *message); -void ov16_02263730(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskHidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge); +void BattleDisplay_PrintLinkWaitMessage(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_RestoreSprite(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnim); +void BattleDisplay_InitTaskSpriteToOAM(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_InitTaskOAMToSprite(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_PrintResultMessage(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_PrintEscapeMessage(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message); +void BattleDisplay_PrintForfeitMessage(BattleSystem *battleSys, BattlerData *battlerData); +void BattleDisplay_RefreshSprite(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *moveAnim); +void BattleDisplay_FlyMoveHitSoundEffect(BattleSystem *battleSys, BattlerData *battlerData, MoveHitSoundMessage *message); +void BattleDisplay_PlayMusic(BattleSystem *battleSys, BattlerData *battlerData, MusicPlayMessage *message); +void BattlerData_SetTaskFuncs(BattleSystem *battleSys, BattlerData *battlerData); u8 BattlerData_GetBattlerType(BattlerData *battlerData); u8 BattlerData_GetBootState(BattlerData *battlerData); PokemonSprite *BattlerData_GetPokemonSprite(BattlerData *battlerData); @@ -129,4 +129,4 @@ UnkStruct_ov16_0226C378 *ov16_02263B0C(BattlerData *battlerData); void ov16_02263B10(BattlerData *battlerData); void ov16_02263B20(BattlerData *battlerData, int param1); -#endif // POKEPLATINUM_OV16_0225CBB8_H +#endif // POKEPLATINUM_BATTLE_BATTLE_DISPLAY_H diff --git a/include/battle/battle_io_command.h b/include/battle/battle_io_command.h index 2376671c87..16de2f5c3a 100644 --- a/include/battle/battle_io_command.h +++ b/include/battle/battle_io_command.h @@ -1,5 +1,5 @@ -#ifndef POKEPLATINUM_OV16_0225BFFC_H -#define POKEPLATINUM_OV16_0225BFFC_H +#ifndef POKEPLATINUM_BATTLE_BATTLE_IO_COMMAND_H +#define POKEPLATINUM_BATTLE_BATTLE_IO_COMMAND_H #include "struct_decls/battle_system.h" #include "struct_defs/battler_data.h" @@ -7,8 +7,8 @@ #include "battle/struct_ov16_0223C2C0.h" BattlerData *ov16_0225BFFC(BattleSystem *battleSys, UnkStruct_ov16_0223C2C0 *param1); -void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int param2, int param3); +void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int ballID, int param3); void ov16_0225C0DC(BattleSystem *battleSys, BattlerData *battlerData); void ov16_0225C104(BattleSystem *battleSys, BattlerData *battlerData, int param2); -#endif // POKEPLATINUM_OV16_0225BFFC_H +#endif // POKEPLATINUM_BATTLE_BATTLE_IO_COMMAND_H diff --git a/include/battle/battle_system.h b/include/battle/battle_system.h index c8884bcdc7..7e56b01d24 100644 --- a/include/battle/battle_system.h +++ b/include/battle/battle_system.h @@ -271,7 +271,7 @@ BOOL ov16_0223F7A4(BattleSystem *battleSys); void BattleSystem_ShowStopPlaybackButton(BattleSystem *battleSys); u8 BattleSystem_GetRecordedChatter(BattleSystem *battleSys, int battler); void ov16_0223F858(BattleSystem *battleSys, u8 *param1); -void ov16_0223F87C(BattleSystem *battleSys, u8 *param1); +void BattleSystem_SetBattlerTypes(BattleSystem *battleSys, u8 *battlerTypes); void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **monSprites); void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1); diff --git a/include/battle/message_defs.h b/include/battle/message_defs.h index aabc882275..2484fa1f2f 100644 --- a/include/battle/message_defs.h +++ b/include/battle/message_defs.h @@ -43,7 +43,7 @@ typedef struct BattleMessageInfo { typedef struct UISetupMessage { int command; - u32 unk_04; + u32 seed; } UISetupMessage; typedef struct MonEncounterMessage { @@ -79,7 +79,7 @@ typedef struct MonShowMessage { u16 nickname[MON_NAME_LEN + 1]; u8 padding_46[2]; int partnerPartySlot; - int notSubstitute; + int isSubstitute; u16 battleMonSpecies[MAX_BATTLERS]; u8 battleMonGenders[MAX_BATTLERS]; u8 battleMonIsShiny[MAX_BATTLERS]; @@ -91,7 +91,7 @@ typedef struct MonReturnMessage { u8 command; u8 yOffset; u16 capturedBall; - int notSubstitute; + int isSubstitute; u16 battleMonSpecies[MAX_BATTLERS]; u8 battleMonGenders[MAX_BATTLERS]; u8 battleMonIsShiny[MAX_BATTLERS]; @@ -99,11 +99,11 @@ typedef struct MonReturnMessage { u32 battleMonPersonalities[MAX_BATTLERS]; } MonReturnMessage; -typedef struct CaptureOpenBallMessage { +typedef struct OpenCaptureBallMessage { u8 command; u8 yOffset; u16 ball; -} CaptureOpenBallMessage; +} OpenCaptureBallMessage; typedef struct TrainerEncounterMessage { u8 command; @@ -135,7 +135,7 @@ typedef struct CommandSetMessage { s16 curHP; u16 maxHP; u8 ballStatusBattler; - u8 unk_29; + u8 switchingOrCanPickCommandMask; u16 padding_2A; } CommandSetMessage; @@ -157,7 +157,7 @@ typedef struct TargetSelectMenuMessage { typedef struct BagMenuMessage { u8 command; - u8 unk_01; + u8 hasTwoOpponents; u8 semiInvulnerable; u8 substitute; u8 partySlots[MAX_BATTLERS]; @@ -169,7 +169,7 @@ typedef struct PartyMenuMessage { u8 command; u8 battler; u8 listMode; - u8 doubles; + u8 doublesSelection; u8 selectedPartySlot[MAX_BATTLERS]; u8 partyOrder[MAX_BATTLERS][MAX_PARTY_SIZE]; int canSwitch; @@ -179,7 +179,7 @@ typedef struct PartyMenuMessage { typedef struct YesNoMenuMessage { u8 command; - u8 yesnoType; + u8 yesNoType; u16 promptMsg; int move; int nickname; @@ -217,8 +217,8 @@ typedef struct FaintingSequenceMessage { u16 species; u32 personality; u8 form; - u8 notSubstitute; - u8 notTransformed; + u8 isSubstitute; + u8 isTransformed; u8 unk_0B; u16 monSpecies[MAX_BATTLERS]; u8 monGenders[MAX_BATTLERS]; @@ -236,7 +236,7 @@ typedef struct PlaySoundMessage { typedef struct ToggleVanishMessage { u8 command; u8 toggle; - u8 notSubstitute; + u8 isSubstitute; u8 padding_03; u16 species[MAX_BATTLERS]; u8 gender[MAX_BATTLERS]; @@ -328,7 +328,7 @@ typedef struct ForgetMoveMessage { typedef struct MosaicSetMessage { u8 command; - u8 unk_01; + u8 intensity; u8 wait; u8 padding_03; } MosaicSetMessage; diff --git a/include/battle/struct_ov16_0225D1C4.h b/include/battle/struct_ov16_0225D1C4.h deleted file mode 100644 index 16aed7d76e..0000000000 --- a/include/battle/struct_ov16_0225D1C4.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D1C4_H -#define POKEPLATINUM_STRUCT_OV16_0225D1C4_H - -#include "struct_decls/battle_system.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - PokemonSprite *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - u8 unk_0C; - u8 unk_0D; - u16 unk_0E; -} UnkStruct_ov16_0225D1C4; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D1C4_H diff --git a/include/battle/struct_ov16_0225D360.h b/include/battle/struct_ov16_0225D360.h deleted file mode 100644 index 83fba3b373..0000000000 --- a/include/battle/struct_ov16_0225D360.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D360_H -#define POKEPLATINUM_STRUCT_OV16_0225D360_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - int unk_0C; - int unk_10; - int unk_14; - int unk_18; -} UnkStruct_ov16_0225D360; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D360_H diff --git a/include/battle/struct_ov16_0225D3CC.h b/include/battle/struct_ov16_0225D3CC.h deleted file mode 100644 index b6fa69490d..0000000000 --- a/include/battle/struct_ov16_0225D3CC.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D3CC_H -#define POKEPLATINUM_STRUCT_OV16_0225D3CC_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - int unk_0C; -} UnkStruct_ov16_0225D3CC; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D3CC_H diff --git a/include/battle/struct_ov16_0225D5B8.h b/include/battle/struct_ov16_0225D5B8.h deleted file mode 100644 index f6fd95ff7c..0000000000 --- a/include/battle/struct_ov16_0225D5B8.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D5B8_H -#define POKEPLATINUM_STRUCT_OV16_0225D5B8_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - void *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - s8 unk_0B; - int unk_0C; - u8 unk_10[2][6]; - u8 unk_1C[6]; - u8 unk_22; - u8 unk_23; - u16 unk_24[4]; - u8 unk_2C[4]; - u8 unk_30[4]; - u8 unk_34; - u8 unk_35; - s16 unk_36; - u16 unk_38; - u8 unk_3A; - u8 unk_3B; -} UnkStruct_ov16_0225D5B8; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D5B8_H diff --git a/include/battle/struct_ov16_0225D698.h b/include/battle/struct_ov16_0225D698.h deleted file mode 100644 index 4048218df6..0000000000 --- a/include/battle/struct_ov16_0225D698.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D698_H -#define POKEPLATINUM_STRUCT_OV16_0225D698_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - void *unk_04; - int unk_08; - u16 unk_0C[4]; - u8 unk_14[4]; - u8 unk_18[4]; - u8 unk_1C; - u8 unk_1D; - u8 unk_1E; - u8 unk_1F; - u8 unk_20; - u8 unk_21; - u16 unk_22; -} UnkStruct_ov16_0225D698; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D698_H diff --git a/include/battle/struct_ov16_0225D708.h b/include/battle/struct_ov16_0225D708.h deleted file mode 100644 index 3d9c7f075f..0000000000 --- a/include/battle/struct_ov16_0225D708.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D708_H -#define POKEPLATINUM_STRUCT_OV16_0225D708_H - -#include "struct_decls/battle_system.h" - -#include "battle/struct_ov16_0225C29C_sub1.h" - -typedef struct { - BattleSystem *battleSys; - void *unk_04; - int unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F; - UnkStruct_ov16_0225C29C_sub1 unk_10[4]; - u16 unk_30; - u8 unk_32; - u8 unk_33; -} UnkStruct_ov16_0225D708; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D708_H diff --git a/include/battle/struct_ov16_0225D794.h b/include/battle/struct_ov16_0225D794.h deleted file mode 100644 index b3323f379b..0000000000 --- a/include/battle/struct_ov16_0225D794.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D794_H -#define POKEPLATINUM_STRUCT_OV16_0225D794_H - -#include "battle/struct_ov16_0225D840.h" -#include "battle_sub_menus/battle_bag.h" - -typedef struct { - BattleSystem *battleSys; - BattleBagContext *unk_04; - UnkStruct_ov16_0225D840 *unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F; - u8 unk_10; - u8 unk_11; - u16 unk_12; - u8 unk_14; - u8 unk_15; - u8 unk_16; - u8 unk_17; - u8 unk_18[4][6]; - u8 unk_30[4]; -} UnkStruct_ov16_0225D794; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D794_H diff --git a/include/battle/struct_ov16_0225D840.h b/include/battle/struct_ov16_0225D840.h deleted file mode 100644 index a75224c3c5..0000000000 --- a/include/battle/struct_ov16_0225D840.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D840_H -#define POKEPLATINUM_STRUCT_OV16_0225D840_H - -#include "battle_sub_menus/battle_party.h" - -typedef struct { - BattleSystem *battleSys; - BattlePartyContext *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - u8 unk_0C[4]; - int unk_10; - u16 unk_14; - u8 unk_16; - u8 unk_17; - u8 unk_18; - u8 unk_19[3]; - u8 unk_1C[4][6]; -} UnkStruct_ov16_0225D840; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D840_H diff --git a/include/battle/struct_ov16_0225D8AC.h b/include/battle/struct_ov16_0225D8AC.h deleted file mode 100644 index f1f0d75438..0000000000 --- a/include/battle/struct_ov16_0225D8AC.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D8AC_H -#define POKEPLATINUM_STRUCT_OV16_0225D8AC_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - void *unk_04; - int unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F; - int unk_10; - int unk_14; - u16 unk_18; - u16 unk_1A; -} UnkStruct_ov16_0225D8AC; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D8AC_H diff --git a/include/battle/struct_ov16_0225D9A8.h b/include/battle/struct_ov16_0225D9A8.h deleted file mode 100644 index a72c52ac20..0000000000 --- a/include/battle/struct_ov16_0225D9A8.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225D9A8_H -#define POKEPLATINUM_STRUCT_OV16_0225D9A8_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02265BBC.h" -#include "battle_anim/battle_anim_system.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - BattleAnimSystem *unk_0C; - MoveAnimation unk_10; - u8 unk_68; - u8 unk_69; - u8 unk_6A; - u8 unk_6B; - u8 unk_6C; - u8 unk_6D[3]; -} UnkStruct_ov16_0225D9A8; - -#endif // POKEPLATINUM_STRUCT_OV16_0225D9A8_H diff --git a/include/battle/struct_ov16_0225DA44.h b/include/battle/struct_ov16_0225DA44.h deleted file mode 100644 index 9f00bd6231..0000000000 --- a/include/battle/struct_ov16_0225DA44.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DA44_H -#define POKEPLATINUM_STRUCT_OV16_0225DA44_H - -#include "struct_decls/battle_system.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - PokemonSprite *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; -} UnkStruct_ov16_0225DA44; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DA44_H diff --git a/include/battle/struct_ov16_0225DB74.h b/include/battle/struct_ov16_0225DB74.h deleted file mode 100644 index 12c7eda17f..0000000000 --- a/include/battle/struct_ov16_0225DB74.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DB74_H -#define POKEPLATINUM_STRUCT_OV16_0225DB74_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02265BBC.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - MoveAnimation unk_0C; - u8 unk_64; - u8 unk_65; - u8 unk_66; - u8 unk_67; - u16 unk_68; - u8 unk_6A; - u8 unk_6B; - u32 unk_6C; - u16 unk_70; - u16 unk_72; -} UnkStruct_ov16_0225DB74; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DB74_H diff --git a/include/battle/struct_ov16_0225DC7C.h b/include/battle/struct_ov16_0225DC7C.h deleted file mode 100644 index f022a35f21..0000000000 --- a/include/battle/struct_ov16_0225DC7C.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DC7C_H -#define POKEPLATINUM_STRUCT_OV16_0225DC7C_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; -} UnkStruct_ov16_0225DC7C; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DC7C_H diff --git a/include/battle/struct_ov16_0225DCB0.h b/include/battle/struct_ov16_0225DCB0.h deleted file mode 100644 index 23e603f29a..0000000000 --- a/include/battle/struct_ov16_0225DCB0.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DCB0_H -#define POKEPLATINUM_STRUCT_OV16_0225DCB0_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02265BBC.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - MoveAnimation unk_08; - u8 unk_60; - u8 unk_61; - u8 unk_62; - u8 unk_63; - int unk_64; -} UnkStruct_ov16_0225DCB0; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DCB0_H diff --git a/include/battle/struct_ov16_0225DF34.h b/include/battle/struct_ov16_0225DF34.h deleted file mode 100644 index 6cb9235e77..0000000000 --- a/include/battle/struct_ov16_0225DF34.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DF34_H -#define POKEPLATINUM_STRUCT_OV16_0225DF34_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - void *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; -} UnkStruct_ov16_0225DF34; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DF34_H diff --git a/include/battle/struct_ov16_0225DF6C.h b/include/battle/struct_ov16_0225DF6C.h deleted file mode 100644 index 856dcf08d8..0000000000 --- a/include/battle/struct_ov16_0225DF6C.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225DF6C_H -#define POKEPLATINUM_STRUCT_OV16_0225DF6C_H - -#include "struct_decls/battle_system.h" - -typedef struct { - BattleSystem *battleSys; - u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; - u8 unk_08; - u8 unk_09[3]; -} UnkStruct_ov16_0225DF6C; - -#endif // POKEPLATINUM_STRUCT_OV16_0225DF6C_H diff --git a/include/battle/struct_ov16_0225E0BC.h b/include/battle/struct_ov16_0225E0BC.h deleted file mode 100644 index 40d05c5f53..0000000000 --- a/include/battle/struct_ov16_0225E0BC.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225E0BC_H -#define POKEPLATINUM_STRUCT_OV16_0225E0BC_H - -#include "battle_sub_menus/battle_party.h" - -typedef struct { - BattleSystem *battleSys; - BattlePartyContext *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - u16 unk_0C; - u8 unk_0E; - u8 unk_0F; -} UnkStruct_ov16_0225E0BC; - -#endif // POKEPLATINUM_STRUCT_OV16_0225E0BC_H diff --git a/include/battle/struct_ov16_0225E0F4.h b/include/battle/struct_ov16_0225E0F4.h deleted file mode 100644 index 10e2ca07e0..0000000000 --- a/include/battle/struct_ov16_0225E0F4.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225E0F4_H -#define POKEPLATINUM_STRUCT_OV16_0225E0F4_H - -#include "struct_decls/battle_system.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - PokemonSprite *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - u8 unk_0C; - u8 unk_0D; - u16 unk_0E; -} UnkStruct_ov16_0225E0F4; - -#endif // POKEPLATINUM_STRUCT_OV16_0225E0F4_H diff --git a/include/battle/struct_ov16_0225E2C8.h b/include/battle/struct_ov16_0225E2C8.h deleted file mode 100644 index ecf842ad16..0000000000 --- a/include/battle/struct_ov16_0225E2C8.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225E2C8_H -#define POKEPLATINUM_STRUCT_OV16_0225E2C8_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F[1]; -} UnkStruct_ov16_0225E2C8; - -#endif // POKEPLATINUM_STRUCT_OV16_0225E2C8_H diff --git a/include/battle/struct_ov16_0225E300.h b/include/battle/struct_ov16_0225E300.h deleted file mode 100644 index 16ce583f4f..0000000000 --- a/include/battle/struct_ov16_0225E300.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225E300_H -#define POKEPLATINUM_STRUCT_OV16_0225E300_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F[1]; -} UnkStruct_ov16_0225E300; - -#endif // POKEPLATINUM_STRUCT_OV16_0225E300_H diff --git a/include/battle/struct_ov16_0225E4E8.h b/include/battle/struct_ov16_0225E4E8.h deleted file mode 100644 index 61980647a0..0000000000 --- a/include/battle/struct_ov16_0225E4E8.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225E4E8_H -#define POKEPLATINUM_STRUCT_OV16_0225E4E8_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02268520.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - UnkStruct_ov16_02268520 *unk_0C; - u8 unk_10; - u8 unk_11; - u8 unk_12; - u8 unk_13; - s16 unk_14; - u16 unk_16; - int unk_18; - int unk_1C; - int unk_20; - int unk_24; - int unk_28; - u8 unk_2C; - u8 unk_2D[3]; -} UnkStruct_ov16_0225E4E8; - -#endif // POKEPLATINUM_STRUCT_OV16_0225E4E8_H diff --git a/include/battle/struct_ov16_0225EA80.h b/include/battle/struct_ov16_0225EA80.h deleted file mode 100644 index 59de2ac26e..0000000000 --- a/include/battle/struct_ov16_0225EA80.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225EA80_H -#define POKEPLATINUM_STRUCT_OV16_0225EA80_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02265BBC.h" -#include "battle_anim/battle_anim_system.h" -#include "battle_anim/struct_ball_rotation_decl.h" -#include "battle_anim/struct_ov12_02223764.h" -#include "battle_anim/struct_ov12_02235FE0_decl.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - UnkStruct_ov12_02235FE0 *unk_08; - BallRotation *unk_0C; - UnkStruct_ov12_02223764 *unk_10; - PokemonSpriteTemplate unk_14; - BattleAnimSystem *unk_24; - MoveAnimation unk_28; - u8 unk_80; - u8 unk_81; - u8 unk_82; - u8 unk_83; - u8 unk_84; - u8 unk_85; - u16 unk_86; - int unk_88; - u8 unk_8C; - u8 unk_8D; - u16 unk_8E; - s8 unk_90; - s8 unk_91; - u8 unk_92; - u8 unk_93; - u16 unk_94; - u8 unk_96; - u8 unk_97; - int unk_98; -} UnkStruct_ov16_0225EA80; - -#endif // POKEPLATINUM_STRUCT_OV16_0225EA80_H diff --git a/include/battle/struct_ov16_0225F764.h b/include/battle/struct_ov16_0225F764.h deleted file mode 100644 index a2401e27c7..0000000000 --- a/include/battle/struct_ov16_0225F764.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_0225F764_H -#define POKEPLATINUM_STRUCT_OV16_0225F764_H - -#include "struct_decls/battle_system.h" -#include "struct_defs/battler_data.h" - -#include "battle/struct_ov16_02265BBC.h" -#include "battle_anim/struct_ball_rotation_decl.h" - -#include "pokemon_sprite.h" - -typedef struct { - BattleSystem *battleSys; - BattlerData *battlerData; - PokemonSprite *unk_08; - BallRotation *unk_0C; - MoveAnimation unk_10; - u8 unk_68; - u8 unk_69; - u8 unk_6A; - u8 unk_6B; - u8 unk_6C; - u8 unk_6D; - u16 unk_6E; - int unk_70; -} UnkStruct_ov16_0225F764; - -#endif // POKEPLATINUM_STRUCT_OV16_0225F764_H diff --git a/include/battle/struct_ov16_02260384.h b/include/battle/struct_ov16_02260384.h deleted file mode 100644 index b4d4527632..0000000000 --- a/include/battle/struct_ov16_02260384.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_02260384_H -#define POKEPLATINUM_STRUCT_OV16_02260384_H - -#include "struct_decls/battle_system.h" - -#include "sprite_system.h" - -typedef struct { - BattleSystem *battleSys; - ManagedSprite *unk_04; - u8 unk_08; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; - s16 unk_0C; - u16 unk_0E; -} UnkStruct_ov16_02260384; - -#endif // POKEPLATINUM_STRUCT_OV16_02260384_H diff --git a/include/battle/struct_ov16_02264650_1.h b/include/battle/struct_ov16_02264650_1.h deleted file mode 100644 index b8b0d59fd7..0000000000 --- a/include/battle/struct_ov16_02264650_1.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_02264650_1_H -#define POKEPLATINUM_STRUCT_OV16_02264650_1_H - -#include "struct_decls/battle_system.h" - -#include "battle/struct_ov16_02268520.h" - -#include "sprite_system.h" - -typedef struct { - BattleSystem *battleSys; - UnkStruct_ov16_02268520 *unk_04; - ManagedSprite *unk_08; - u8 unk_0C; - u8 unk_0D; - u8 unk_0E; - u8 unk_0F; - s16 unk_10; - u16 unk_12_0 : 1; - u16 unk_12_1 : 15; - int unk_14; - int unk_18; - int unk_1C; -} UnkStruct_ov16_02264650_1; - -#endif // POKEPLATINUM_STRUCT_OV16_02264650_1_H diff --git a/include/battle/struct_ov16_02265BBC.h b/include/battle/struct_ov16_02265BBC.h deleted file mode 100644 index bc8f539239..0000000000 --- a/include/battle/struct_ov16_02265BBC.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV16_02265BBC_H -#define POKEPLATINUM_STRUCT_OV16_02265BBC_H - -typedef struct { - u8 command; - u8 unk_01; - u16 move; - s32 damage; - u16 power; - u16 effectChance; - u16 friendship; - u16 isSubstitute : 1; - u16 transformed : 1; - u16 : 14; - u32 fieldConditions; - u16 attacker; - u16 defender; - u16 species[4]; - u8 genders[4]; - u8 isShiny[4]; - u8 formNums[4]; - u32 personalities[4]; - u32 moveEffectMasks[4]; - int unk_4C; - int unk_50; - int terrain; -} MoveAnimation; - -#endif // POKEPLATINUM_STRUCT_OV16_02265BBC_H diff --git a/include/battle_anim/battle_anim_system.h b/include/battle_anim/battle_anim_system.h index 5f0b29eebc..c75361e806 100644 --- a/include/battle_anim/battle_anim_system.h +++ b/include/battle_anim/battle_anim_system.h @@ -4,9 +4,9 @@ #include "constants/battle.h" #include "struct_decls/battle_system.h" +#include "struct_defs/move_animation.h" #include "battle/battle_anim_battler_context.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle_anim/struct_ov12_02223764.h" #include "battle_anim/struct_ov12_022380DC.h" @@ -119,7 +119,7 @@ typedef struct BattleAnimContext { ChatotCry *chatotCry; u8 *bgTiles; u16 *bgPaletteBuffer; - BOOL transformed; // Flag for if transform is currently active + BOOL isTransformed; } BattleAnimContext; typedef struct CustomBgScrollContext CustomBgScrollContext; diff --git a/include/battle_anim/const_ov12_0223B0B8.h b/include/battle_anim/const_ov12_0223B0B8.h deleted file mode 100644 index 3bf7b9d57c..0000000000 --- a/include/battle_anim/const_ov12_0223B0B8.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_CONST_OV12_0223B0B8_H -#define POKEPLATINUM_CONST_OV12_0223B0B8_H - -extern const s16 Unk_ov12_0223B0B8[][3]; - -#endif // POKEPLATINUM_CONST_OV12_0223B0B8_H diff --git a/include/battle_anim/const_ov12_0223B0DC.h b/include/battle_anim/const_ov12_0223B0DC.h deleted file mode 100644 index afdddb24fd..0000000000 --- a/include/battle_anim/const_ov12_0223B0DC.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_CONST_OV12_0223B0DC_H -#define POKEPLATINUM_CONST_OV12_0223B0DC_H - -extern const s16 Unk_ov12_0223B0DC[][3]; - -#endif // POKEPLATINUM_CONST_OV12_0223B0DC_H diff --git a/include/battle_anim/ov12_022380BC.h b/include/battle_anim/ov12_022380BC.h index be370c18be..a39041a049 100644 --- a/include/battle_anim/ov12_022380BC.h +++ b/include/battle_anim/ov12_022380BC.h @@ -3,6 +3,9 @@ #include "battle_anim/struct_ov12_022380DC.h" +extern const s16 gEncounterCoords[][3]; +extern const s16 gSlideTrainerInCoords[][3]; + void ov12_022380BC(UnkStruct_ov12_022380DC *param0, enum HeapID heapID); void ov12_022380CC(UnkStruct_ov12_022380DC *param0, enum HeapID heapID); void ov12_022382BC(UnkStruct_ov12_022380DC *param0, enum HeapID heapID); diff --git a/include/constants/battle/battle_controller.h b/include/constants/battle/battle_controller.h index 472339d081..460c02b5d5 100644 --- a/include/constants/battle/battle_controller.h +++ b/include/constants/battle/battle_controller.h @@ -33,7 +33,7 @@ enum BattleCommand { BATTLE_COMMAND_FADE_OUT, BATTLE_COMMAND_TOGGLE_VANISH, BATTLE_COMMAND_SET_STATUS_ICON, // 30 - BATTLE_COMMAND_TRAINER_MESSAGE, + BATTLE_COMMAND_PRINT_TRAINER_MESSAGE, BATTLE_COMMAND_PRINT_RECALL_MESSAGE, BATTLE_COMMAND_PRINT_SEND_OUT_MESSAGE, BATTLE_COMMAND_PRINT_BATTLE_START_MESSAGE, @@ -57,13 +57,13 @@ enum BattleCommand { BATTLE_COMMAND_LOAD_PARTY_GAUGE_GRAPHICS, BATTLE_COMMAND_FREE_PARTY_GAUGE_GRAPHICS, BATTLE_COMMAND_INCREMENT_RECORD, - BATTLE_COMMAND_LINK_WAIT_MESSAGE, + BATTLE_COMMAND_PRINT_LINK_WAIT_MESSAGE, BATTLE_COMMAND_RESTORE_SPRITE, BATTLE_COMMAND_SPRITE_TO_OAM, BATTLE_COMMAND_OAM_TO_SPRITE, - BATTLE_COMMAND_RESULT_MESSAGE, - BATTLE_COMMAND_ESCAPE_MESSAGE, // 60 - BATTLE_COMMAND_FORFEIT_MESSAGE, + BATTLE_COMMAND_PRINT_RESULT_MESSAGE, + BATTLE_COMMAND_PRINT_ESCAPE_MESSAGE, // 60 + BATTLE_COMMAND_PRINT_FORFEIT_MESSAGE, BATTLE_COMMAND_REFRESH_SPRITE, BATTLE_COMMAND_FLY_MOVE_HIT_SOUND_EFFECT, BATTLE_COMMAND_PLAY_MUSIC, diff --git a/include/pokemon.h b/include/pokemon.h index fac7f42779..a1fd5fce1c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -498,7 +498,7 @@ u8 BoxPokemon_SpriteYOffset(BoxPokemon *boxMon, u8 face, BOOL preferDP); */ u8 LoadPokemonSpriteYOffset(u16 species, u8 gender, u8 face, u8 form, u32 personality); void sub_0207697C(PokemonSpriteTemplate *param0, u16 param1); -ManagedSprite *sub_02076994(SpriteSystem *param0, SpriteManager *param1, PaletteData *param2, int param3, int param4, int param5, int param6, int param7, enum HeapID heapID); +ManagedSprite *SpriteSystem_NewManagedSpriteTrainer(SpriteSystem *spriteSys, SpriteManager *spriteMan, PaletteData *paletteData, int x, int y, int trainerType, int face, int battlerType, enum HeapID heapID); void sub_02076AAC(int param0, int param1, UnkStruct_ov5_021DE5D0 *param2); /** @@ -810,7 +810,7 @@ void PlayCryWithParams(ChatotCry *chatotCry, enum PokemonCryMod cryMod, u16 spec * * @param chatotCry Chatot cry data from the save block. Only used * if the Pokemon itself is Chatot. - * @param crymod Modification to apply to the Pokemon's cry. + * @param cryMod Modification to apply to the Pokemon's cry. * @param species * @param form * @param pan @@ -819,7 +819,7 @@ void PlayCryWithParams(ChatotCry *chatotCry, enum PokemonCryMod cryMod, u16 spec * @param heapID * @param delay Number of frames until playback will begin. */ -void Species_PlayDelayedCry(ChatotCry *chatotCry, enum PokemonCryMod crymod, u16 species, int form, int pan, int volume, int forceDefaultChatot, enum HeapID heapID, u8 delay); +void Species_PlayDelayedCry(ChatotCry *chatotCry, enum PokemonCryMod cryMod, u16 species, int form, int pan, int volume, int forceDefaultChatot, enum HeapID heapID, u8 delay); BOOL Pokemon_PlayCry(Pokemon *mon); void Pokemon_SetCatchData(Pokemon *mon, TrainerInfo *trainerInfo, int monPokeball, int metLocation, int metTerrain, enum HeapID heapID); void Pokemon_UpdateAfterCatch(Pokemon *mon, TrainerInfo *param1, int monPokeball, int param3, int param4, int param5); diff --git a/include/struct_defs/battler_data.h b/include/struct_defs/battler_data.h index e6bcee334e..38eafa5641 100644 --- a/include/struct_defs/battler_data.h +++ b/include/struct_defs/battler_data.h @@ -13,12 +13,12 @@ #include "sys_task_manager.h" typedef struct BattlerDataSysTaskFuncs { - SysTaskFunc func_00; - SysTaskFunc func_04; - SysTaskFunc func_08; - SysTaskFunc func_0C; - SysTaskFunc func_10; - SysTaskFunc func_14; + SysTaskFunc setCommandSelection; + SysTaskFunc showMoveSelectMenu; + SysTaskFunc showTargetSelectMenu; + SysTaskFunc showBagMenu; + SysTaskFunc showPartyMenu; + SysTaskFunc showYesNoMenu; } BattlerDataSysTaskFuncs; #define DATA_BUF_SIZE 256 diff --git a/include/struct_defs/move_animation.h b/include/struct_defs/move_animation.h new file mode 100644 index 0000000000..d6dcbe3d70 --- /dev/null +++ b/include/struct_defs/move_animation.h @@ -0,0 +1,31 @@ +#ifndef POKEPLATINUM_STRUCT_MOVE_ANIMATION_H +#define POKEPLATINUM_STRUCT_MOVE_ANIMATION_H + +#include "constants/battle.h" + +typedef struct MoveAnimation { + u8 command; + u8 unk_01; + u16 move; + s32 damage; + u16 power; + u16 effectChance; + u16 friendship; + u16 isSubstitute : 1; + u16 isTransformed : 1; + u16 : 14; + u32 fieldConditions; + u16 attacker; + u16 defender; + u16 species[MAX_BATTLERS]; + u8 genders[MAX_BATTLERS]; + u8 isShiny[MAX_BATTLERS]; + u8 formNums[MAX_BATTLERS]; + u32 personalities[MAX_BATTLERS]; + u32 moveEffectMasks[MAX_BATTLERS]; + int unk_4C; + int unk_50; + int terrain; +} MoveAnimation; + +#endif // POKEPLATINUM_STRUCT_MOVE_ANIMATION_H diff --git a/src/battle/battle_controller.c b/src/battle/battle_controller.c index 61a250b691..9d421ebf85 100644 --- a/src/battle/battle_controller.c +++ b/src/battle/battle_controller.c @@ -10,6 +10,7 @@ #include "struct_decls/battle_system.h" #include "struct_defs/battle_system.h" #include "struct_defs/battler_data.h" +#include "struct_defs/move_animation.h" #include "battle/battle_context.h" #include "battle/battle_controller.h" @@ -19,7 +20,6 @@ #include "battle/common.h" #include "battle/message_defs.h" #include "battle/struct_ov16_0224DDA8.h" -#include "battle/struct_ov16_02265BBC.h" #include "communication_system.h" #include "flags.h" @@ -30,7 +30,7 @@ #include "unk_0207A6DC.h" static void BattleController_SendLocalMessage(BattleSystem *battleSys, int recipient, int battler, void *message, u8 size); -static void SendMessage(BattleSystem *battleSys, int recipient, int battlerId, void *message, u8 size); +static void SendMessage(BattleSystem *battleSys, int recipient, int battler, void *message, u8 size); static void PartyGaugeData_New(BattleSystem *battleSys, BattleContext *battleCtx, PartyGaugeData *partyGauge, int command, int battler); /** @@ -182,34 +182,34 @@ void BattleController_TryRecvLocalMessage(BattleSystem *battleSys, int recipient /** * @brief Sends a message to a recipient (server or client) * - * If sending to a server, battlerId will be the responder's id - * If sending to a client, battlerId will be the affected battler's id (?) - * If sending to a server queue, battlerId will be removed from the server's queue + * If sending to a server, battler will be the responder's id + * If sending to a client, battler will be the affected battler's id (?) + * If sending to a server queue, battler will be removed from the server's queue * * @param battleSys * @param recipient - * @param battlerId + * @param battler * @param message * @param size */ -static void SendMessage(BattleSystem *battleSys, int recipient, int battlerId, void *message, u8 size) +static void SendMessage(BattleSystem *battleSys, int recipient, int battler, void *message, u8 size) { u8 *data = message; if (battleSys->battleType & BATTLE_TYPE_LINK && (battleSys->battleStatusMask & BATTLE_TYPE_TAG) == FALSE) { if (recipient == COMM_RECIPIENT_CLIENT) { for (int i = 0; i < CommSys_ConnectedCount(); i++) { - BattleIO_EnqueueVal(battleSys->battleCtx, i, battlerId, *data); + BattleIO_EnqueueVal(battleSys->battleCtx, i, battler, *data); } } - sub_0207A81C(battleSys, recipient, battlerId, message, size); + sub_0207A81C(battleSys, recipient, battler, message, size); } else { if (recipient == COMM_RECIPIENT_CLIENT) { - BattleIO_EnqueueVal(battleSys->battleCtx, 0, battlerId, *data); + BattleIO_EnqueueVal(battleSys->battleCtx, 0, battler, *data); } - BattleController_SendLocalMessage(battleSys, recipient, battlerId, message, size); + BattleController_SendLocalMessage(battleSys, recipient, battler, message, size); } } @@ -217,128 +217,128 @@ static void SendMessage(BattleSystem *battleSys, int recipient, int battlerId, v * @brief Emits a message to set up the battle UI * * @param battleSys - * @param battlerId + * @param battler */ -void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battlerId) +void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battler) { UISetupMessage message; message.command = BATTLE_COMMAND_SETUP_UI; - message.unk_04 = BattleSystem_GetSeedDTO(battleSys); + message.seed = BattleSystem_GetSeedDTO(battleSys); - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(UISetupMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(UISetupMessage)); } /** * @brief Emits a message to set a wild encounter * * @param battleSys - * @param battlerId + * @param battler */ -void BattleController_EmitSetEncounter(BattleSystem *battleSys, int battlerId) +void BattleController_EmitSetEncounter(BattleSystem *battleSys, int battler) { MonEncounterMessage message; int i; message.command = BATTLE_COMMAND_SET_ENCOUNTER; - message.gender = battleSys->battleCtx->battleMons[battlerId].gender; - message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; - message.species = battleSys->battleCtx->battleMons[battlerId].species; - message.personality = battleSys->battleCtx->battleMons[battlerId].personality; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 1); - message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; + message.gender = battleSys->battleCtx->battleMons[battler].gender; + message.isShiny = battleSys->battleCtx->battleMons[battler].isShiny; + message.species = battleSys->battleCtx->battleMons[battler].species; + message.personality = battleSys->battleCtx->battleMons[battler].personality; + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battler, BattleSystem_GetBattlerType(battleSys, battler), 1); + message.formNum = battleSys->battleCtx->battleMons[battler].formNum; for (i = 0; i < LEARNED_MOVES_MAX; i++) { - message.moves[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MOVE_1 + i, NULL); - message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_CUR_PP_1 + i, NULL); - message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MAX_PP_1 + i, NULL); + message.moves[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MOVE_1 + i, NULL); + message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_CUR_PP_1 + i, NULL); + message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MAX_PP_1 + i, NULL); } - BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_NICKNAME, &message.nickname); - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MonEncounterMessage)); + BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_NICKNAME, &message.nickname); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MonEncounterMessage)); } /** * @brief Emits a message to show a wild encounter * * @param battleSys - * @param battlerId + * @param battler */ -void BattleController_EmitShowEncounter(BattleSystem *battleSys, int battlerId) +void BattleController_EmitShowEncounter(BattleSystem *battleSys, int battler) { MonShowMessage message; int i; message.command = BATTLE_COMMAND_SHOW_ENCOUNTER; - message.gender = battleSys->battleCtx->battleMons[battlerId].gender; - message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; - message.species = battleSys->battleCtx->battleMons[battlerId].species; - message.personality = battleSys->battleCtx->battleMons[battlerId].personality; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 1); - message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battlerId]; - message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; - message.capturedBall = battleSys->battleCtx->battleMons[battlerId].capturedBall; - message.partnerPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battlerId)]; + message.gender = battleSys->battleCtx->battleMons[battler].gender; + message.isShiny = battleSys->battleCtx->battleMons[battler].isShiny; + message.species = battleSys->battleCtx->battleMons[battler].species; + message.personality = battleSys->battleCtx->battleMons[battler].personality; + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battler, BattleSystem_GetBattlerType(battleSys, battler), 1); + message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battler]; + message.formNum = battleSys->battleCtx->battleMons[battler].formNum; + message.capturedBall = battleSys->battleCtx->battleMons[battler].capturedBall; + message.partnerPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; - ov16_0223EF2C(battleSys, battlerId, message.selectedPartySlot); + ov16_0223EF2C(battleSys, battler, message.selectedPartySlot); for (i = 0; i < LEARNED_MOVES_MAX; i++) { - message.moves[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MOVE_1 + i, NULL); - message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_CUR_PP_1 + i, NULL); - message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MAX_PP_1 + i, NULL); + message.moves[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MOVE_1 + i, NULL); + message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_CUR_PP_1 + i, NULL); + message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MAX_PP_1 + i, NULL); } - BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_NICKNAME, &message.nickname); - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MonShowMessage)); + BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_NICKNAME, &message.nickname); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MonShowMessage)); } /** * @brief Emits a message to show a Pokemon * * @param battleSys - * @param battlerId + * @param battler * @param capturedBall * @param param3 */ -void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battlerId, int capturedBall, int param3) +void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battler, int capturedBall, int param3) { MonShowMessage message; int i; message.command = BATTLE_COMMAND_SHOW_POKEMON; - if (battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { - message.gender = battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedGender; - message.personality = battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedPID; + if (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { + message.gender = battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedGender; + message.personality = battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedPID; } else { - message.gender = battleSys->battleCtx->battleMons[battlerId].gender; - message.personality = battleSys->battleCtx->battleMons[battlerId].personality; + message.gender = battleSys->battleCtx->battleMons[battler].gender; + message.personality = battleSys->battleCtx->battleMons[battler].personality; } - message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; - message.species = battleSys->battleCtx->battleMons[battlerId].species; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 0); - message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battlerId]; - message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; + message.isShiny = battleSys->battleCtx->battleMons[battler].isShiny; + message.species = battleSys->battleCtx->battleMons[battler].species; + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battler, BattleSystem_GetBattlerType(battleSys, battler), 0); + message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battler]; + message.formNum = battleSys->battleCtx->battleMons[battler].formNum; if (capturedBall) { message.capturedBall = capturedBall; } else { - message.capturedBall = battleSys->battleCtx->battleMons[battlerId].capturedBall; + message.capturedBall = battleSys->battleCtx->battleMons[battler].capturedBall; } message.unk_14 = param3; - message.notSubstitute = ((battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0); + message.isSubstitute = (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0; - ov16_0223EF2C(battleSys, battlerId, message.selectedPartySlot); + ov16_0223EF2C(battleSys, battler, message.selectedPartySlot); for (i = 0; i < LEARNED_MOVES_MAX; i++) { - message.moves[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MOVE_1 + i, NULL); - message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_CUR_PP_1 + i, NULL); - message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_MAX_PP_1 + i, NULL); + message.moves[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MOVE_1 + i, NULL); + message.curPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_CUR_PP_1 + i, NULL); + message.maxPP[i] = BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_MAX_PP_1 + i, NULL); } - BattleMon_Get(battleSys->battleCtx, battlerId, BATTLEMON_NICKNAME, &message.nickname); + BattleMon_Get(battleSys->battleCtx, battler, BATTLEMON_NICKNAME, &message.nickname); for (i = 0; i < LEARNED_MOVES_MAX; i++) { message.battleMonSpecies[i] = battleSys->battleCtx->battleMons[i].species; @@ -354,7 +354,7 @@ void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battlerId, in } } - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MonShowMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MonShowMessage)); } /** @@ -362,32 +362,32 @@ void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battlerId, in * * @param battleSys * @param battleCtx - * @param battlerId + * @param battler */ -void BattleController_EmitReturnPokemon(BattleSystem *battleSys, BattleContext *battleCtx, int battlerId) +void BattleController_EmitReturnPokemon(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { MonReturnMessage message; int face; int formNum; int i; - if (battleSys->battlers[battlerId]->battlerType & BATTLER_TYPE_SOLO_ENEMY) { + if (battleSys->battlers[battler]->battlerType & BATTLER_TYPE_SOLO_ENEMY) { face = FACE_FRONT; } else { face = FACE_BACK; } - formNum = battleSys->battleCtx->battleMons[battlerId].formNum; + formNum = battleSys->battleCtx->battleMons[battler].formNum; message.command = BATTLE_COMMAND_RETURN_POKEMON; - if (battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { - message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battlerId].species, battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedGender, face, formNum, battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedPID); + if (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { + message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battler].species, battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedGender, face, formNum, battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedPID); } else { - message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battlerId].species, battleSys->battleCtx->battleMons[battlerId].gender, face, formNum, battleSys->battleCtx->battleMons[battlerId].personality); + message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battler].species, battleSys->battleCtx->battleMons[battler].gender, face, formNum, battleSys->battleCtx->battleMons[battler].personality); } - message.capturedBall = battleSys->battleCtx->battleMons[battlerId].capturedBall; - message.notSubstitute = ((battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0); + message.capturedBall = battleSys->battleCtx->battleMons[battler].capturedBall; + message.isSubstitute = (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0; for (i = 0; i < LEARNED_MOVES_MAX; i++) { message.battleMonSpecies[i] = battleCtx->battleMons[i].species; @@ -403,118 +403,118 @@ void BattleController_EmitReturnPokemon(BattleSystem *battleSys, BattleContext * } } - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MonReturnMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MonReturnMessage)); } /** * @brief Emits a message to set up the animation to try and catch a Pokemon with a given Poke Ball * * @param battleSystem - * @param battlerId + * @param battler * @param ball */ -void BattleController_EmitOpenCaptureBall(BattleSystem *battleSys, int battlerId, int ball) +void BattleController_EmitOpenCaptureBall(BattleSystem *battleSys, int battler, int ball) { - CaptureOpenBallMessage message; + OpenCaptureBallMessage message; int face; int formNum; - if (battleSys->battlers[battlerId]->battlerType & BATTLER_TYPE_SOLO_ENEMY) { + if (battleSys->battlers[battler]->battlerType & BATTLER_TYPE_SOLO_ENEMY) { face = FACE_FRONT; } else { face = FACE_BACK; } - formNum = battleSys->battleCtx->battleMons[battlerId].formNum; + formNum = battleSys->battleCtx->battleMons[battler].formNum; message.command = BATTLE_COMMAND_OPEN_CAPTURE_BALL; - if (battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { - message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battlerId].species, battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedGender, face, formNum, battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedPID); + if (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { + message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battler].species, battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedGender, face, formNum, battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedPID); } else { - message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battlerId].species, battleSys->battleCtx->battleMons[battlerId].gender, face, formNum, battleSys->battleCtx->battleMons[battlerId].personality); + message.yOffset = LoadPokemonSpriteYOffset(battleSys->battleCtx->battleMons[battler].species, battleSys->battleCtx->battleMons[battler].gender, face, formNum, battleSys->battleCtx->battleMons[battler].personality); } message.ball = ball; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(CaptureOpenBallMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(OpenCaptureBallMessage)); } /** * @brief Emits a message to delete a Pokemon's sprite * * @param battleSys - * @param battlerId + * @param battler */ -void BattleController_EmitDeletePokemon(BattleSystem *battleSys, int battlerId) +void BattleController_EmitDeletePokemon(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_DELETE_POKEMON; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** * @brief Emits a message to set a trainer encounter * * @param battleSystem - * @param battlerId + * @param battler */ -void BattleController_EmitSetTrainerEncounter(BattleSystem *battleSys, int battlerId) +void BattleController_EmitSetTrainerEncounter(BattleSystem *battleSys, int battler) { TrainerEncounterMessage message; message.command = BATTLE_COMMAND_SET_TRAINER_ENCOUNTER; - message.trainerType = battleSys->trainers[battlerId].header.trainerType; - message.unk_01 = battleSys->unk_A8[battlerId]; + message.trainerType = battleSys->trainers[battler].header.trainerType; + message.unk_01 = battleSys->unk_A8[battler]; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(TrainerEncounterMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(TrainerEncounterMessage)); } /** * @brief Emits a message for a trainer to throw a Pokeball * * @param battleSys - * @param battlerId + * @param battler * @param ballTypeIn */ -void BattleController_EmitThrowTrainerBall(BattleSystem *battleSys, int battlerId, int ballTypeIn) +void BattleController_EmitThrowTrainerBall(BattleSystem *battleSys, int battler, int ballTypeIn) { TrainerThrowBallMessage message; message.command = BATTLE_COMMAND_THROW_TRAINER_BALL; message.ballTypeIn = ballTypeIn; - message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battlerId)]; + message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(TrainerThrowBallMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(TrainerThrowBallMessage)); } /** * @brief Emits a message to slide out a trainer sprite * * @param battleSys - * @param battlerId + * @param battler */ -void BattleController_EmitSlideTrainerOut(BattleSystem *battleSys, int battlerId) +void BattleController_EmitSlideTrainerOut(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_SLIDE_TRAINER_OUT; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** * @brief Emits a message to slide in a trainer sprite * * @param battleSys - * @param battlerId + * @param battler * @param posIn */ -void BattleController_EmitSlideTrainerIn(BattleSystem *battleSys, int battlerId, int posIn) +void BattleController_EmitSlideTrainerIn(BattleSystem *battleSys, int battler, int posIn) { TrainerSlideInMessage message; message.command = BATTLE_COMMAND_SLIDE_TRAINER_IN; - message.trainerType = battleSys->trainers[battlerId].header.trainerType; - message.unk_01 = battleSys->unk_A8[battlerId]; + message.trainerType = battleSys->trainers[battler].header.trainerType; + message.unk_01 = battleSys->unk_A8[battler]; message.posIn = posIn; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(TrainerSlideInMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(TrainerSlideInMessage)); } /** @@ -601,11 +601,11 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon message.command = BATTLE_COMMAND_SET_COMMAND_SELECTION; message.partySlot = partySlot; - message.unk_29 = battleCtx->battlersSwitchingMask | battlersCanPickCommandMask; + message.switchingOrCanPickCommandMask = battleCtx->battlersSwitchingMask | battlersCanPickCommandMask; battleType = BattleSystem_GetBattleType(battleSys); - if ((battleType & BATTLE_TYPE_DOUBLES) && ((battleType & BATTLE_TYPE_2vs2) == 0)) { + if ((battleType & BATTLE_TYPE_DOUBLES) && ((battleType & BATTLE_TYPE_2vs2) == FALSE)) { battlerType = battler & BATTLER_THEM; } else { battlerType = battler; @@ -618,7 +618,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon pokemon = Party_GetPokemonBySlotIndex(party, battleCtx->partyOrder[battlerType][i]); monSpeciesOrEgg = Pokemon_GetValue(pokemon, MON_DATA_SPECIES_OR_EGG, NULL); - if ((monSpeciesOrEgg) && (monSpeciesOrEgg != SPECIES_EGG)) { + if (monSpeciesOrEgg && monSpeciesOrEgg != SPECIES_EGG) { if (Pokemon_GetValue(pokemon, MON_DATA_HP, NULL)) { if (Pokemon_GetValue(pokemon, MON_DATA_STATUS, NULL)) { message.ballStatus[PARTY_GAUGE_OURS][cnt] = STOCK_STATUS_HAS_STATUS_CONDITION; @@ -656,7 +656,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon pokemon = Party_GetPokemonBySlotIndex(party, battleCtx->partyOrder[battlerType][i]); monSpeciesOrEgg = Pokemon_GetValue(pokemon, MON_DATA_SPECIES_OR_EGG, NULL); - if ((monSpeciesOrEgg) && (monSpeciesOrEgg != SPECIES_EGG)) { + if (monSpeciesOrEgg && monSpeciesOrEgg != SPECIES_EGG) { if (Pokemon_GetValue(pokemon, MON_DATA_HP, NULL)) { if (Pokemon_GetValue(pokemon, MON_DATA_STATUS, NULL)) { message.ballStatus[PARTY_GAUGE_THEIRS][cnt] = STOCK_STATUS_HAS_STATUS_CONDITION; @@ -684,7 +684,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon pokemon = Party_GetPokemonBySlotIndex(party, battleCtx->partyOrder[battlerType][i]); monSpeciesOrEgg = Pokemon_GetValue(pokemon, MON_DATA_SPECIES_OR_EGG, NULL); - if ((monSpeciesOrEgg) && (monSpeciesOrEgg != SPECIES_EGG)) { + if (monSpeciesOrEgg && monSpeciesOrEgg != SPECIES_EGG) { if (Pokemon_GetValue(pokemon, MON_DATA_HP, NULL)) { if (Pokemon_GetValue(pokemon, MON_DATA_STATUS, NULL)) { message.ballStatus[PARTY_GAUGE_THEIRS][cnt] = STOCK_STATUS_HAS_STATUS_CONDITION; @@ -699,7 +699,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon } } } else { - battlerType = BattleSystem_GetEnemyInSlot(battleSys, battler, 2); + battlerType = BattleSystem_GetEnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_LEFT); party = BattleSystem_GetParty(battleSys, battlerType); cnt = 0; @@ -707,7 +707,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon pokemon = Party_GetPokemonBySlotIndex(party, battleCtx->partyOrder[battlerType][i]); monSpeciesOrEgg = Pokemon_GetValue(pokemon, MON_DATA_SPECIES_OR_EGG, NULL); - if ((monSpeciesOrEgg) && (monSpeciesOrEgg != SPECIES_EGG)) { + if (monSpeciesOrEgg && monSpeciesOrEgg != SPECIES_EGG) { if (Pokemon_GetValue(pokemon, MON_DATA_HP, NULL)) { if (Pokemon_GetValue(pokemon, MON_DATA_STATUS, NULL)) { message.ballStatus[PARTY_GAUGE_THEIRS][cnt] = STOCK_STATUS_HAS_STATUS_CONDITION; @@ -745,9 +745,9 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(CommandSetMessage)); } -void ov16_022656D4(BattleSystem *battleSys, int battlerId, int command) +void ov16_022656D4(BattleSystem *battleSys, int battler, int command) { - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &command, sizeof(int)); } /** @@ -776,9 +776,9 @@ void BattleController_EmitShowMoveSelectMenu(BattleSystem *battleSys, BattleCont SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MoveSelectMenuMessage)); } -void ov16_02265790(BattleSystem *battleSys, int battlerId, int command) +void ov16_02265790(BattleSystem *battleSys, int battler, int command) { - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &command, sizeof(int)); } /** @@ -802,7 +802,7 @@ void BattleCommand_EmitShowTargetSelectMenu(BattleSystem *battleSys, BattleConte message.command = BATTLE_COMMAND_SHOW_TARGET_SELECT_MENU; message.range = range; - if (((battleType & BATTLE_TYPE_DOUBLES) == FALSE) || (battleType & BATTLE_TYPE_2vs2) || ((battleType & BATTLE_TYPE_DOUBLES) && (battler >= 2))) { + if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE || (battleType & BATTLE_TYPE_2vs2) || ((battleType & BATTLE_TYPE_DOUBLES) && battler >= 2)) { message.unk_01 = 1; } else { message.unk_01 = 0; @@ -814,7 +814,8 @@ void BattleCommand_EmitShowTargetSelectMenu(BattleSystem *battleSys, BattleConte message.targetMon[i].maxHP = battleCtx->battleMons[i].maxHP; message.targetMon[i].unk_01_2 = 1; - if (((battleCtx->battleMons[i].species == SPECIES_NIDORAN_F) || (battleCtx->battleMons[i].species == SPECIES_NIDORAN_M)) && (battleCtx->battleMons[i].hasNickname == 0)) { + if ((battleCtx->battleMons[i].species == SPECIES_NIDORAN_F || battleCtx->battleMons[i].species == SPECIES_NIDORAN_M) + && battleCtx->battleMons[i].hasNickname == FALSE) { message.targetMon[i].gender = GENDER_NONE; } else { message.targetMon[i].gender = battleCtx->battleMons[i].gender; @@ -836,9 +837,9 @@ void BattleCommand_EmitShowTargetSelectMenu(BattleSystem *battleSys, BattleConte SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(TargetSelectMenuMessage)); } -void ov16_022658CC(BattleSystem *battleSys, int battlerId, int command) +void ov16_022658CC(BattleSystem *battleSys, int battler, int command) { - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &command, sizeof(int)); } /** @@ -868,62 +869,62 @@ void BattleController_EmitShowBagMenu(BattleSystem *battleSys, BattleContext *ba } if (BattleSystem_GetBattleType(battleSys) == BATTLE_TYPE_AI_PARTNER) { - if (((battleCtx->battlersSwitchingMask & FlagIndex(1)) == 0) && ((battleCtx->battlersSwitchingMask & FlagIndex(3)) == 0)) { - message.unk_01 = 1; - message.semiInvulnerable = 0; - message.substitute = 0; + if ((battleCtx->battlersSwitchingMask & FlagIndex(1)) == 0 && (battleCtx->battlersSwitchingMask & FlagIndex(3)) == 0) { + message.hasTwoOpponents = TRUE; + message.semiInvulnerable = FALSE; + message.substitute = FALSE; } else if ((battleCtx->battlersSwitchingMask & FlagIndex(1)) == 0) { - message.unk_01 = 0; + message.hasTwoOpponents = FALSE; if (battleCtx->battleMons[1].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) { - message.semiInvulnerable = 1; - message.substitute = 0; + message.semiInvulnerable = TRUE; + message.substitute = FALSE; } else if (battleCtx->battleMons[1].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) { - message.semiInvulnerable = 0; - message.substitute = 1; + message.semiInvulnerable = FALSE; + message.substitute = TRUE; } else { - message.semiInvulnerable = 0; - message.substitute = 0; + message.semiInvulnerable = FALSE; + message.substitute = FALSE; } } else { - message.unk_01 = 0; + message.hasTwoOpponents = FALSE; if (battleCtx->battleMons[3].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) { - message.semiInvulnerable = 1; - message.substitute = 0; + message.semiInvulnerable = TRUE; + message.substitute = FALSE; } else if (battleCtx->battleMons[3].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) { - message.semiInvulnerable = 0; - message.substitute = 1; + message.semiInvulnerable = FALSE; + message.substitute = TRUE; } else { - message.semiInvulnerable = 0; - message.substitute = 0; + message.semiInvulnerable = FALSE; + message.substitute = FALSE; } } } else if (BattleSystem_GetBattleType(battleSys) == (BATTLE_TYPE_SINGLES | BATTLE_TYPE_WILD_MON)) { // Was (0x0 | 0x0). Is this what they intended? - message.unk_01 = 0; + message.hasTwoOpponents = FALSE; if (battleCtx->battleMons[1].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) { - message.semiInvulnerable = 1; - message.substitute = 0; + message.semiInvulnerable = TRUE; + message.substitute = FALSE; } else if (battleCtx->battleMons[1].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) { - message.semiInvulnerable = 0; - message.substitute = 1; + message.semiInvulnerable = FALSE; + message.substitute = TRUE; } else { - message.semiInvulnerable = 0; - message.substitute = 0; + message.semiInvulnerable = FALSE; + message.substitute = FALSE; } } else { - message.unk_01 = 0; - message.semiInvulnerable = 0; - message.substitute = 0; + message.hasTwoOpponents = FALSE; + message.semiInvulnerable = FALSE; + message.substitute = FALSE; } SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(BagMenuMessage)); } -void ov16_02265A70(BattleSystem *battleSys, int battlerId, BattleItemUse message) +void ov16_02265A70(BattleSystem *battleSys, int battler, BattleItemUse message) { - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &message, sizeof(BattleItemUse)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &message, sizeof(BattleItemUse)); } /** @@ -934,9 +935,9 @@ void ov16_02265A70(BattleSystem *battleSys, int battlerId, BattleItemUse message * @param battler * @param listMode * @param canSwitch - * @param doubles + * @param doublesSelection */ -void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int listMode, int canSwitch, int doubles) +void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int listMode, int canSwitch, int doublesSelection) { PartyMenuMessage message; int i, j; @@ -947,7 +948,7 @@ void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext * message.battler = battler; message.listMode = listMode; message.canSwitch = canSwitch; - message.doubles = doubles; + message.doublesSelection = doublesSelection; message.battlersSwitchingMask = battleCtx->battlersSwitchingMask; for (i = 0; i < MAX_BATTLERS; i++) { @@ -961,9 +962,9 @@ void BattleController_EmitShowPartyMenu(BattleSystem *battleSys, BattleContext * SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(PartyMenuMessage)); } -void ov16_02265B10(BattleSystem *battleSys, int battlerId, int command) +void ov16_02265B10(BattleSystem *battleSys, int battler, int command) { - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &command, sizeof(int)); } /** @@ -977,7 +978,7 @@ void ov16_02265B10(BattleSystem *battleSys, int battlerId, int command) * @param move * @param nickname */ -void BattleController_EmitShowYesNoMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int promptMsg, int yesnoType, int move, int nickname) +void BattleController_EmitShowYesNoMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int promptMsg, int yesNoType, int move, int nickname) { YesNoMenuMessage message; @@ -985,7 +986,7 @@ void BattleController_EmitShowYesNoMenu(BattleSystem *battleSys, BattleContext * message.command = BATTLE_COMMAND_SHOW_YES_NO_MENU; message.promptMsg = promptMsg; - message.yesnoType = yesnoType; + message.yesNoType = yesNoType; message.move = move; message.nickname = nickname; @@ -1058,13 +1059,13 @@ void BattleController_EmitPlayMoveAnimationA2D(BattleSystem *battleSys, BattleCo * @brief Emits a message to flicker the specified battler's sprite * * @param battleSys - * @param battlerId + * @param battler * @param unused */ -void BattleController_EmitFlickerBattlerSprite(BattleSystem *battleSys, int battlerId, u32 unused) +void BattleController_EmitFlickerBattlerSprite(BattleSystem *battleSys, int battler, u32 unused) { int command = BATTLE_COMMAND_FLICKER_BATTLER; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1087,7 +1088,8 @@ void BattleController_EmitUpdateHPGauge(BattleSystem *battleSys, BattleContext * message.maxHP = battleCtx->battleMons[battler].maxHP; message.hpCalcTemp = battleCtx->hpCalcTemp; - if (((battleCtx->battleMons[battler].species == SPECIES_NIDORAN_F) || (battleCtx->battleMons[battler].species == SPECIES_NIDORAN_M)) && (battleCtx->battleMons[battler].hasNickname == 0)) { + if ((battleCtx->battleMons[battler].species == SPECIES_NIDORAN_F || battleCtx->battleMons[battler].species == SPECIES_NIDORAN_M) + && battleCtx->battleMons[battler].hasNickname == FALSE) { message.gender = GENDER_NONE; } else { message.gender = battleCtx->battleMons[battler].gender; @@ -1137,8 +1139,8 @@ void BattleController_EmitPlayFaintingSequence(BattleSystem *battleSys, BattleCo message.command = BATTLE_COMMAND_PLAY_FAINTING_SEQUENCE; message.species = battleCtx->battleMons[battler].species; message.form = battleCtx->battleMons[battler].formNum; - message.notSubstitute = ((battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0); - message.notTransformed = ((battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) != 0); + message.isSubstitute = (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0; + message.isTransformed = (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) != 0; if (battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { message.gender = battleCtx->battleMons[battler].moveEffectsData.transformedGender; @@ -1200,17 +1202,17 @@ void BattleController_EmitFadeOut(BattleSystem *battleSys, BattleContext *battle * @brief Emits a message to fade out the screen * * @param battleSys - * @param battlerId + * @param battler * @param toggle */ -void BattleController_EmitToggleVanish(BattleSystem *battleSys, int battlerId, int toggle) +void BattleController_EmitToggleVanish(BattleSystem *battleSys, int battler, int toggle) { ToggleVanishMessage message; int i; message.command = BATTLE_COMMAND_TOGGLE_VANISH; message.toggle = toggle; - message.notSubstitute = ((battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0); + message.isSubstitute = (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0; for (i = 0; i < MAX_BATTLERS; i++) { message.species[i] = battleSys->battleCtx->battleMons[i].species; @@ -1226,41 +1228,41 @@ void BattleController_EmitToggleVanish(BattleSystem *battleSys, int battlerId, i } } - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(ToggleVanishMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(ToggleVanishMessage)); } /** * @brief Emits a message to set the status icon on the battler's Healthbar * * @param battleSys - * @param battlerId + * @param battler * @param status */ -void BattleController_EmitSetStatusIcon(BattleSystem *battleSys, int battlerId, int status) +void BattleController_EmitSetStatusIcon(BattleSystem *battleSys, int battler, int status) { SetStatusIconMessage message; message.command = BATTLE_COMMAND_SET_STATUS_ICON; message.status = status; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(SetStatusIconMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(SetStatusIconMessage)); } /** * @brief Emits a message to print a trainer's (text) message * * @param battleSys - * @param battlerId + * @param battler * @param msg */ -void BattleController_EmitTrainerMessage(BattleSystem *battleSys, int battlerId, int msg) +void BattleController_EmitTrainerMessage(BattleSystem *battleSys, int battler, int msg) { TrainerMsgMessage message; - message.command = BATTLE_COMMAND_TRAINER_MESSAGE; + message.command = BATTLE_COMMAND_PRINT_TRAINER_MESSAGE; message.msg = msg; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(TrainerMsgMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(TrainerMsgMessage)); } /** @@ -1380,11 +1382,11 @@ void BattleController_EmitLeadMonMessage(BattleSystem *battleSys, BattleContext * @param battleSys * @param battler */ -void BattleController_EmitPlayLevelUpAnimation(BattleSystem *battleSys, int battlerId) +void BattleController_EmitPlayLevelUpAnimation(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_PLAY_LEVEL_UP_ANIMATION; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1405,10 +1407,10 @@ void BattleController_EmitSetAlertMessage(BattleSystem *battleSys, int battler, SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(AlertMsgMessage)); } -void ov16_022661B0(BattleSystem *battleSys, int battlerId) +void ov16_022661B0(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_SETUP_UI; - SendMessage(battleSys, COMM_RECIPIENT_SERVER, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_SERVER, battler, &command, sizeof(int)); } /** @@ -1436,7 +1438,8 @@ void BattleController_EmitRefreshHPGauge(BattleSystem *battleSys, BattleContext message.partySlot = battleCtx->selectedPartySlot[battler]; message.status = Battler_StatusCondition(battleCtx, battler); - if (((battleCtx->battleMons[battler].species == SPECIES_NIDORAN_F) || (battleCtx->battleMons[battler].species == SPECIES_NIDORAN_M)) && (battleCtx->battleMons[battler].hasNickname == 0)) { + if ((battleCtx->battleMons[battler].species == SPECIES_NIDORAN_F || battleCtx->battleMons[battler].species == SPECIES_NIDORAN_M) + && battleCtx->battleMons[battler].hasNickname == FALSE) { message.gender = 2; } else { message.gender = battleCtx->battleMons[battler].gender; @@ -1502,10 +1505,10 @@ void BattleController_EmitUpdatePartyMon(BattleSystem *battleSys, BattleContext SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(UpdatePartyMonMessage)); } -void ov16_02266460(BattleSystem *battleSys, int battlerId) +void ov16_02266460(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_40; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1547,17 +1550,17 @@ void BattleController_EmitRefreshPartyStatus(BattleSystem *battleSys, BattleCont * @param move * @param slot */ -void BattleController_EmitForgetMove(BattleSystem *battleSys, int battlerId, int move, int slot) +void BattleController_EmitForgetMove(BattleSystem *battleSys, int battler, int move, int slot) { ForgetMoveMessage message; - BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battlerId); + BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battler); message.command = BATTLE_COMMAND_FORGET_MOVE; message.move = move; message.slot = slot; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(RefreshPartyStatusMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(RefreshPartyStatusMessage)); } /** @@ -1565,18 +1568,18 @@ void BattleController_EmitForgetMove(BattleSystem *battleSys, int battlerId, int * * @param battleSys * @param battler - * @param param2 + * @param intensity * @param wait */ -void BattleController_EmitSetMosaic(BattleSystem *battleSys, int battlerId, int param2, int wait) +void BattleController_EmitSetMosaic(BattleSystem *battleSys, int battler, int intensity, int wait) { MosaicSetMessage message; message.command = BATTLE_COMMAND_SET_MOSAIC; - message.unk_01 = param2; + message.intensity = intensity; message.wait = wait; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MosaicSetMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MosaicSetMessage)); } /** @@ -1585,25 +1588,25 @@ void BattleController_EmitSetMosaic(BattleSystem *battleSys, int battlerId, int * @param battleSys * @param battler */ -void BattleController_EmitChangeWeatherForm(BattleSystem *battleSys, int battlerId) +void BattleController_EmitChangeWeatherForm(BattleSystem *battleSys, int battler) { MonChangeFormMessage message; message.command = BATTLE_COMMAND_CHANGE_WEATHER_FORM; - message.species = battleSys->battleCtx->battleMons[battlerId].species; - message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; + message.species = battleSys->battleCtx->battleMons[battler].species; + message.isShiny = battleSys->battleCtx->battleMons[battler].isShiny; - if (battleSys->battleCtx->battleMons[battlerId].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { - message.gender = battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedGender; - message.personality = battleSys->battleCtx->battleMons[battlerId].moveEffectsData.transformedPID; + if (battleSys->battleCtx->battleMons[battler].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { + message.gender = battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedGender; + message.personality = battleSys->battleCtx->battleMons[battler].moveEffectsData.transformedPID; } else { - message.gender = battleSys->battleCtx->battleMons[battlerId].gender; - message.personality = battleSys->battleCtx->battleMons[battlerId].personality; + message.gender = battleSys->battleCtx->battleMons[battler].gender; + message.personality = battleSys->battleCtx->battleMons[battler].personality; } - message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; + message.formNum = battleSys->battleCtx->battleMons[battler].formNum; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MonChangeFormMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MonChangeFormMessage)); } /** @@ -1612,10 +1615,10 @@ void BattleController_EmitChangeWeatherForm(BattleSystem *battleSys, int battler * @param battleSys * @param battler */ -void BattleController_EmitUpdateBG(BattleSystem *battleSys, int battlerId) +void BattleController_EmitUpdateBG(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_UPDATE_BG; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1712,7 +1715,7 @@ void BattleController_EmitFreePartyGaugeGraphics(BattleSystem *battleSys) * @param battlerType * @param record */ -void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battlerId, int battlerType, int record) +void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battler, int battlerType, int record) { RecordIncrementMessage message; @@ -1720,7 +1723,7 @@ void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battlerId message.battlerType = battlerType; message.record = record; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(RecordIncrementMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(RecordIncrementMessage)); } /** @@ -1729,15 +1732,15 @@ void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battlerId * @param battleSys * @param battelr */ -void BattleController_EmitLinkWaitMessage(BattleSystem *battleSys, int battler) +void BattleController_EmitPrintLinkWaitMessage(BattleSystem *battleSys, int battler) { LinkWaitMsgMessage message; u32 battleType = BattleSystem_GetBattleType(battleSys); - message.command = BATTLE_COMMAND_LINK_WAIT_MESSAGE; + message.command = BATTLE_COMMAND_PRINT_LINK_WAIT_MESSAGE; message.unk_02 = 0; - if ((battleType & BATTLE_TYPE_LINK) && (sub_0202F250() == 1) && ((battleSys->battleStatusMask & 0x10) == 0)) { + if ((battleType & BATTLE_TYPE_LINK) && sub_0202F250() == TRUE && (battleSys->battleStatusMask & SYSCTL_HIT_DURING_DIVE) == FALSE) { message.unk_02 = ov16_0223F58C(battleSys, &message.unk_04[0]); GF_ASSERT(message.unk_02 < 28); SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(LinkWaitMsgMessage)); @@ -1781,10 +1784,10 @@ void BattleController_EmitRestoreSprite(BattleSystem *battleSys, BattleContext * * @param battleSys * @param battler */ -void BattleController_EmitSpriteToOAM(BattleSystem *battleSys, int battlerId) +void BattleController_EmitSpriteToOAM(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_SPRITE_TO_OAM; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1793,10 +1796,10 @@ void BattleController_EmitSpriteToOAM(BattleSystem *battleSys, int battlerId) * @param battleSys * @param battler */ -void BattleController_EmitOAMToSprite(BattleSystem *battleSys, int battlerId) +void BattleController_EmitOAMToSprite(BattleSystem *battleSys, int battler) { int command = BATTLE_COMMAND_OAM_TO_SPRITE; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &command, sizeof(int)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &command, sizeof(int)); } /** @@ -1806,7 +1809,7 @@ void BattleController_EmitOAMToSprite(BattleSystem *battleSys, int battlerId) */ void BattleController_EmitResultMessage(BattleSystem *battleSys) { - int command = BATTLE_COMMAND_RESULT_MESSAGE; + int command = BATTLE_COMMAND_PRINT_RESULT_MESSAGE; SendMessage(battleSys, COMM_RECIPIENT_CLIENT, 0, &command, sizeof(int)); } @@ -1822,7 +1825,7 @@ void BattleController_EmitEscapeMessage(BattleSystem *battleSys, BattleContext * int i; u32 battleType = BattleSystem_GetBattleType(battleSys); - message.command = BATTLE_COMMAND_ESCAPE_MESSAGE; + message.command = BATTLE_COMMAND_PRINT_ESCAPE_MESSAGE; message.unk_01 = 0; message.unk_02 = 0; @@ -1832,7 +1835,7 @@ void BattleController_EmitEscapeMessage(BattleSystem *battleSys, BattleContext * } } - if ((battleType & BATTLE_TYPE_LINK) && (sub_0202F250() == 1) && ((battleSys->battleStatusMask & 0x10) == 0)) { + if ((battleType & BATTLE_TYPE_LINK) && sub_0202F250() == TRUE && (battleSys->battleStatusMask & SYSCTL_HIT_DURING_DIVE) == FALSE) { message.unk_02 = ov16_0223F58C(battleSys, &message.unk_04[0]); GF_ASSERT(message.unk_02 < 28); } @@ -1850,10 +1853,10 @@ void BattleController_EmitForfeitMessage(BattleSystem *battleSys) ForfeitMsgMessage message; u32 battleType = BattleSystem_GetBattleType(battleSys); - message.command = BATTLE_COMMAND_FORFEIT_MESSAGE; + message.command = BATTLE_COMMAND_PRINT_FORFEIT_MESSAGE; message.unk_02 = 0; - if ((battleType & BATTLE_TYPE_LINK) && (sub_0202F250() == 1) && ((battleSys->battleStatusMask & 0x10) == 0)) { + if ((battleType & BATTLE_TYPE_LINK) && sub_0202F250() == TRUE && (battleSys->battleStatusMask & SYSCTL_HIT_DURING_DIVE) == FALSE) { message.unk_02 = ov16_0223F58C(battleSys, &message.unk_04[0]); GF_ASSERT(message.unk_02 < 28); } @@ -1923,14 +1926,14 @@ void BattleController_EmitPlayMoveHitSoundEffect(BattleSystem *battleSys, Battle * @param battler * @param bgmID */ -void BattleController_EmitPlayMusic(BattleSystem *battleSys, int battlerId, int bgmID) +void BattleController_EmitPlayMusic(BattleSystem *battleSys, int battler, int bgmID) { MusicPlayMessage message; message.command = BATTLE_COMMAND_PLAY_MUSIC; message.bgmID = bgmID; - SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(MusicPlayMessage)); + SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(MusicPlayMessage)); } /** @@ -1947,7 +1950,7 @@ void BattleController_EmitSubmitResult(BattleSystem *battleSys) message.resultMask = BattleSystem_GetResultMask(battleSys); message.unk_02 = 0; - if ((battleType & BATTLE_TYPE_LINK) && (sub_0202F250() == 1) && ((battleSys->battleStatusMask & 0x10) == 0)) { + if ((battleType & BATTLE_TYPE_LINK) && sub_0202F250() == TRUE && (battleSys->battleStatusMask & SYSCTL_HIT_DURING_DIVE) == FALSE) { message.unk_02 = ov16_0223F58C(battleSys, &message.unk_08[0]); GF_ASSERT(message.unk_02 <= 28); } @@ -1970,17 +1973,17 @@ void BattleController_EmitClearMessageBox(BattleSystem *battleSys) * @brief Emits a message to clear the given command in the server queue in a multiplayer game * * @param battleSys - * @param battlerId + * @param battler * @param command */ -void BattleController_EmitClearCommand(BattleSystem *battleSys, int battlerId, int command) +void BattleController_EmitClearCommand(BattleSystem *battleSys, int battler, int command) { CommandClearMsg message; message.command = command; message.netID = CommSys_CurNetId(); - SendMessage(battleSys, 2, battlerId, &message, sizeof(CommandClearMsg)); + SendMessage(battleSys, COMM_RECIPIENT_QUEUE, battler, &message, sizeof(CommandClearMsg)); } /** @@ -2067,15 +2070,16 @@ void BattleController_SetMoveAnimation(BattleSystem *battleSys, BattleContext *b animation->friendship = battleCtx->battleMons[attacker].friendship; - if ((BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS, 0, ABILITY_CLOUD_NINE) == 0) && (BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS, 0, ABILITY_AIR_LOCK) == 0)) { + if (BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS, 0, ABILITY_CLOUD_NINE) == 0 + && BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS, 0, ABILITY_AIR_LOCK) == 0) { animation->fieldConditions = battleCtx->fieldConditionsMask; } else { animation->fieldConditions = 0; } animation->effectChance = battleCtx->moveEffectChance; - animation->isSubstitute = ((battleCtx->battleMons[attacker].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0); - animation->transformed = ((battleCtx->battleMons[attacker].statusVolatile & VOLATILE_CONDITION_TRANSFORM) != 0); + animation->isSubstitute = (battleCtx->battleMons[attacker].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) != 0; + animation->isTransformed = (battleCtx->battleMons[attacker].statusVolatile & VOLATILE_CONDITION_TRANSFORM) != 0; for (i = 0; i < MAX_BATTLERS; i++) { animation->species[i] = battleCtx->battleMons[i].species; diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index f746c7ba00..95f1e66f8f 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -655,10 +655,10 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys if (battleType == BATTLE_TYPE_LINK_DOUBLES) { if (battleCtx->curCommandState[BattleSystem_GetPartner(battleSys, i)] == COMMAND_SELECTION_END) { - BattleController_EmitLinkWaitMessage(battleSys, i); + BattleController_EmitPrintLinkWaitMessage(battleSys, i); } } else { - BattleController_EmitLinkWaitMessage(battleSys, i); + BattleController_EmitPrintLinkWaitMessage(battleSys, i); } battleCtx->curCommandState[i] = COMMAND_SELECTION_END; diff --git a/src/battle/battle_cursor.c b/src/battle/battle_cursor.c index 3c01482e1b..3576cfb3b1 100644 --- a/src/battle/battle_cursor.c +++ b/src/battle/battle_cursor.c @@ -2162,7 +2162,7 @@ static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param ov16_0226B20C(param0, v3, 0); ov16_0226A698(param0); ov16_0226AAF8(param0); - ov16_0223F87C(param0->battleSys, v10); + BattleSystem_SetBattlerTypes(param0->battleSys, v10); ov16_0223F858(param0->battleSys, v11); v4 = String_Init(12 + 2 + (5 * 2), HEAP_ID_BATTLE); diff --git a/src/battle/battle_display.c b/src/battle/battle_display.c index 49427cb47e..3cbc03791a 100644 --- a/src/battle/battle_display.c +++ b/src/battle/battle_display.c @@ -3,13 +3,20 @@ #include #include +#include "constants/battle/battle_anim.h" +#include "constants/battle/battle_controller.h" #include "constants/battle/battle_script.h" #include "constants/heap.h" +#include "constants/sound.h" #include "constants/species.h" +#include "generated/battle_boot_states.h" +#include "generated/battle_message_tags.h" #include "generated/items.h" +#include "generated/trainer_classes.h" #include "struct_decls/battle_system.h" #include "struct_defs/battler_data.h" +#include "struct_defs/move_animation.h" #include "struct_defs/sprite_animation_frame.h" #include "struct_defs/trainer.h" @@ -20,6 +27,7 @@ #include "battle/battle_lib.h" #include "battle/battle_message.h" #include "battle/battle_system.h" +#include "battle/common.h" #include "battle/healthbar.h" #include "battle/message_defs.h" #include "battle/move_display_info.h" @@ -28,36 +36,10 @@ #include "battle/party_gauge.h" #include "battle/struct_ov16_0224DDA8.h" #include "battle/struct_ov16_0225CBB8.h" -#include "battle/struct_ov16_0225D1C4.h" -#include "battle/struct_ov16_0225D360.h" -#include "battle/struct_ov16_0225D3CC.h" -#include "battle/struct_ov16_0225D5B8.h" -#include "battle/struct_ov16_0225D698.h" -#include "battle/struct_ov16_0225D708.h" -#include "battle/struct_ov16_0225D794.h" -#include "battle/struct_ov16_0225D840.h" -#include "battle/struct_ov16_0225D8AC.h" -#include "battle/struct_ov16_0225D9A8.h" -#include "battle/struct_ov16_0225DA44.h" -#include "battle/struct_ov16_0225DB74.h" -#include "battle/struct_ov16_0225DC7C.h" -#include "battle/struct_ov16_0225DCB0.h" -#include "battle/struct_ov16_0225DF34.h" -#include "battle/struct_ov16_0225DF6C.h" -#include "battle/struct_ov16_0225E0BC.h" -#include "battle/struct_ov16_0225E0F4.h" -#include "battle/struct_ov16_0225E2C8.h" -#include "battle/struct_ov16_0225E300.h" -#include "battle/struct_ov16_0225E4E8.h" -#include "battle/struct_ov16_0225EA80.h" -#include "battle/struct_ov16_0225F764.h" -#include "battle/struct_ov16_02260384.h" #include "battle/struct_ov16_02260C00.h" #include "battle/struct_ov16_02260F14.h" #include "battle/struct_ov16_022623F0.h" #include "battle/struct_ov16_02264650.h" -#include "battle/struct_ov16_02264650_1.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle/struct_ov16_02268A14_decl.h" #include "battle/struct_ov16_02269668.h" #include "battle/struct_ov16_0226C378.h" @@ -65,11 +47,12 @@ #include "battle/trainer_ai.h" #include "battle_anim/battle_anim_system.h" #include "battle_anim/const_ov12_0223B0A0.h" -#include "battle_anim/const_ov12_0223B0B8.h" -#include "battle_anim/const_ov12_0223B0DC.h" #include "battle_anim/ov12_02235E94.h" #include "battle_anim/ov12_02237EFC.h" #include "battle_anim/ov12_022380BC.h" +#include "battle_anim/struct_ball_rotation_decl.h" +#include "battle_anim/struct_ov12_02223764.h" +#include "battle_anim/struct_ov12_02235FE0_decl.h" #include "battle_anim/struct_ov12_02236030.h" #include "battle_anim/struct_ov12_02237728.h" #include "battle_anim/struct_ov12_02237F38.h" @@ -105,97 +88,113 @@ #include "trainer_info.h" #include "unk_0201567C.h" -static void ov16_0225E4E8(SysTask *param0, void *param1); -static void ov16_0225E894(SysTask *param0, void *param1); -static void ov16_0225EA80(SysTask *param0, void *param1); -static void ov16_0225F0C0(SysTask *param0, void *param1); -static void ov16_0225F764(SysTask *param0, void *param1); -static void ov16_0225FA00(SysTask *param0, void *param1); -static void ov16_0225FA70(SysTask *param0, void *param1); -static void ov16_0225FD5C(SysTask *param0, void *param1); -static void ov16_02260384(SysTask *param0, void *param1); -static void ov16_02260284(SysTask *param0, void *param1); -static void SlideHealthbarInTask(SysTask *task, void *data); -static void SlideHealthbarOutTask(SysTask *task, void *data); -static void ov16_022604C8(SysTask *param0, void *param1); -static void ov16_02260AB4(SysTask *param0, void *param1); -static void ov16_02260AE4(SysTask *param0, void *param1); -static void ov16_02260B04(SysTask *param0, void *param1); -static void ov16_02260B84(SysTask *param0, void *param1); -static void ov16_02260BAC(SysTask *param0, void *param1); -static void ov16_02260C00(SysTask *param0, void *param1); -static void ov16_02260DB0(SysTask *param0, void *param1); -static void ov16_02260E78(SysTask *param0, void *param1); -static void ov16_02260E98(SysTask *param0, void *param1); -static void ov16_02260F14(SysTask *param0, void *param1); -static void ov16_022610A8(SysTask *param0, void *param1); -static void ov16_022610EC(SysTask *param0, void *param1); -static void ov16_0226110C(SysTask *param0, void *param1); -static void ov16_022611DC(SysTask *param0, void *param1); -static void ov16_02261D50(SysTask *param0, void *param1); -static void ov16_02261DA8(SysTask *param0, void *param1); -static void ov16_02261DE0(SysTask *param0, void *param1); -static void ov16_02261E8C(SysTask *param0, void *param1); -static void ov16_02262258(SysTask *param0, void *param1); -static void ov16_0226230C(SysTask *param0, void *param1); -static void ov16_0226232C(SysTask *param0, void *param1); -static void ov16_022623F0(SysTask *param0, void *param1); -static void ov16_0226262C(SysTask *param0, void *param1); -static void ov16_0226264C(SysTask *param0, void *param1); -static void ov16_0226266C(SysTask *param0, void *param1); -static void ov16_022626C0(SysTask *param0, void *param1); -static void ov16_0226292C(SysTask *param0, void *param1); -static void ov16_02262988(SysTask *param0, void *param1); -static void ov16_022629DC(SysTask *param0, void *param1); -static void ov16_02262A9C(SysTask *param0, void *param1); -static void ov16_02262D28(SysTask *param0, void *param1); -static void ov16_02262DC4(SysTask *param0, void *param1); -static void ov16_02262F30(SysTask *param0, void *param1); -static void WaitForBattleMessagePrint(SysTask *param0, void *param1); -static void ov16_02262FC0(SysTask *param0, void *param1); -static void ov16_02263014(SysTask *param0, void *param1); -static void ov16_022633A4(SysTask *param0, void *param1); -static void ov16_022634DC(SysTask *param0, void *param1); -static void ShowPartyGaugeTask(SysTask *param0, void *param1); -static void HidePartyGaugeTask(SysTask *param0, void *param1); -static void ov16_02263688(SysTask *param0, void *param1); -static void ov16_022636D4(SysTask *param0, void *param1); +typedef struct TrainerEncounterData { + BattleSystem *battleSys; + UnkStruct_ov16_02268520 *unk_04; + ManagedSprite *managedSprite; + u8 command; + u8 battler; + u8 state; + u8 face; + s16 unk_10; + u16 unk_12_0 : 1; + u16 padding_12_1 : 15; + int battlerType; + int delay; + int unk_1C; +} TrainerEncounterData; + +static void Task_SetEncounter(SysTask *task, void *data); +static void Task_SetGiratinaEncounter(SysTask *task, void *data); +static void Task_ShowEncounter(SysTask *task, void *data); +static void Task_ShowPokemon(SysTask *task, void *data); +static void Task_ReturnPokemon(SysTask *task, void *data); +static void Task_OpenCaptureBall(SysTask *task, void *data); +static void Task_SetTrainerEncounter(SysTask *task, void *data); +static void Task_ThrowTrainerBall(SysTask *task, void *data); +static void Task_SlideTrainerIn(SysTask *task, void *data); +static void Task_SlideTrainerOut(SysTask *task, void *data); +static void Task_SlideHealthbarIn(SysTask *task, void *data); +static void Task_SlideHealthbarOut(SysTask *task, void *data); +static void Task_PlayerSetCommandSelection(SysTask *task, void *data); +static void Task_TrainerSetCommandSelection(SysTask *task, void *data); +static void Task_LinkSetCommandSelection(SysTask *task, void *data); +static void Task_SafariPokemonSetCommandSelection(SysTask *task, void *data); +static void Task_PalParkPokemonSetCommandSelection(SysTask *task, void *data); +static void Task_RecordingSetCommandSelection(SysTask *task, void *data); +static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data); +static void Task_TrainerShowMoveSelectMenu(SysTask *task, void *data); +static void Task_LinkShowMoveSelectMenu(SysTask *task, void *data); +static void Task_RecordingShowMoveSelectMenu(SysTask *task, void *data); +static void Task_PlayerShowTargetSelectMenu(SysTask *task, void *data); +static void Task_TrainerShowTargetSelectMenu(SysTask *task, void *data); +static void Task_LinkShowTargetSelectMenu(SysTask *task, void *data); +static void Task_RecordingShowTargetSelectMenu(SysTask *task, void *data); +static void Task_PlayerShowBagMenu(SysTask *task, void *data); +static void Task_TrainerShowBagMenu(SysTask *task, void *data); +static void Task_LinkShowBagMenu(SysTask *task, void *data); +static void Task_RecordingShowBagMenu(SysTask *task, void *data); +static void Task_PlayerShowPartyMenu(SysTask *task, void *data); +static void Task_TrainerShowPartyMenu(SysTask *task, void *data); +static void Task_LinkShowPartyMenu(SysTask *task, void *data); +static void Task_RecordingShowPartyMenu(SysTask *task, void *data); +static void Task_PlayerShowYesNoMenu(SysTask *task, void *data); +static void Task_TrainerShowYesNoMenu(SysTask *task, void *data); +static void Task_LinkShowYesNoMenu(SysTask *task, void *data); +static void Task_RecordingShowYesNoMenu(SysTask *task, void *data); +static void Task_SetMoveAnimation(SysTask *task, void *data); +static void Task_FlickerBattler(SysTask *task, void *data); +static void Task_UpdateHPGauge(SysTask *task, void *data); +static void Task_UpdateExpGauge(SysTask *task, void *data); +static void Task_PlayFaintingSequence(SysTask *task, void *data); +static void Task_FadeOut(SysTask *task, void *data); +static void Task_ToggleVanish(SysTask *task, void *data); +static void Task_PlayLevelUpAnimation(SysTask *task, void *data); +static void Task_WaitForBattleMessagePrint(SysTask *task, void *data); +static void Task_WaitForAlertMessagePrint(SysTask *task, void *data); +static void ov16_02263014(SysTask *task, void *data); +static void Task_ForgetMove(SysTask *task, void *data); +static void Task_SetMosaic(SysTask *task, void *data); +static void Task_ShowPartyGauge(SysTask *task, void *data); +static void Task_HidePartyGauge(SysTask *task, void *data); +static void Task_SpriteToOAM(SysTask *task, void *data); +static void Task_OAMToSprite(SysTask *task, void *data); static PokemonSprite *ov16_02263B30(BattleSystem *battleSys, PokemonSpriteManager *param1, PokemonSpriteTemplate *param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10, SpriteAnimFrame *param11, PokemonSpriteCallback *param12); -static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message, BattleMessage *param3); -static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message, BattleMessage *param3); -static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *message); -static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message, BattleMessage *param3); -static void ov16_022641B4(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *message); -static void ov16_02264270(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message, BattleMessage *param3); -static void ov16_02264360(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *message); -static ManagedSprite *ov16_022643B8(BattleSystem *battleSys, int param1, int param2, int param3, s16 param4, s16 param5); +static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message, BattleMessage *battleMsg); +static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message, BattleMessage *battleMsg); +static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg); +static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message, BattleMessage *battleMsg); +static void ov16_022641B4(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg); +static void ov16_02264270(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message, BattleMessage *battleMsg); +static void ov16_02264360(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg); +static ManagedSprite *BattleDisplay_NewManagedSpriteTrainer(BattleSystem *battleSys, int side, int trainerClass, int battlerType, s16 x, s16 y); static void ov16_02264408(BattleSystem *battleSys, BattlerData *battlerData, BattleAnimSystem *param2, MoveAnimation *param3); static void ov16_02264530(BattleSystem *battleSys, MoveAnimation *param1, UnkStruct_ov12_022380DC *param2, int param3); static void ov16_022645B8(u8 *param0, u8 *param1, int param2, int param3, u16 param4); -static BOOL ov16_02264650(UnkStruct_ov16_02264650_1 *param0, ManagedSprite *param1); -static void ov16_022646C8(SysTask *param0, void *param1); +static BOOL ov16_02264650(TrainerEncounterData *param0, ManagedSprite *param1); +static void ov16_022646C8(SysTask *task, void *param1); static void ov16_02264730(BattleSystem *battleSys); static void ov16_0226474C(BattleSystem *battleSys); static u8 ov16_02264768(BattleSystem *battleSys, u8 param1, u8 param2); -static const u16 Unk_ov16_0226F1AE[] = { - 0x0, - 0x7297, - 0x3FFF, - 0x7AF0, - 0x7ADF, - 0x53D7, - 0x67F5, - 0x7B2C, - 0x2B7E, - 0x431F, - 0x7BDD, - 0x2A3F, - 0x293F, - 0x45CE, - 0x731F, - 0x7F51, - 0x151E +static const u16 sFadeColors[] = { + RGB(0, 0, 0), + RGB(23, 20, 28), + RGB(31, 31, 15), + RGB(16, 23, 30), + RGB(31, 22, 30), + RGB(23, 30, 20), + RGB(21, 31, 25), + RGB(12, 25, 30), + RGB(30, 27, 10), + RGB(31, 24, 16), + RGB(29, 30, 30), + RGB(31, 17, 10), + RGB(31, 9, 10), + RGB(14, 14, 17), + RGB(31, 24, 28), + RGB(17, 26, 31), + RGB(30, 8, 5), }; void ov16_0225CBB8(BattleSystem *battleSys, BattlerData *battlerData) @@ -209,353 +208,449 @@ void ov16_0225CBB8(BattleSystem *battleSys, BattlerData *battlerData) SysTask_Start(ov16_02263014, v0, 0); } -void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *battlerData, MonEncounterMessage *message) +typedef struct MonEncounterData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *sprite; + UnkStruct_ov16_02268520 *unk_0C; + u8 command; + u8 battler; + u8 state; + u8 face; + s16 unk_14; + u16 species; + enum PokemonCryMod cryMod; + int battlerType; + int delay; + int nature; + BOOL isShiny; + u8 formNum; + u8 padding_2D[3]; +} MonEncounterData; + +void BattleDisplay_InitTaskSetEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonEncounterMessage *message) { - int v0; - PokemonSpriteTemplate v1; - PokemonSpriteManager *v2; - SpriteAnimFrame v3[10]; - UnkStruct_ov16_0225E4E8 *v4; - int battleType; - u8 v6; - s8 v7; - s8 v8; - u8 v9; + BOOL isShiny; + PokemonSpriteTemplate spriteTemplate; + PokemonSpriteManager *spriteMan = BattleSystem_GetPokemonSpriteManager(battleSys); + SpriteAnimFrame animFrames[MAX_ANIMATION_FRAMES]; + MonEncounterData *monEncounterData; + int battleType = BattleSystem_GetBattleType(battleSys); + u8 yOffset; + s8 height; + s8 shadowXOffset; + u8 shadowSize; - v2 = BattleSystem_GetPokemonSpriteManager(battleSys); - battleType = BattleSystem_GetBattleType(battleSys); - v4 = (UnkStruct_ov16_0225E4E8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E4E8)); + monEncounterData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(MonEncounterData)); - v4->unk_12 = 0; + monEncounterData->state = 0; - if (battlerData->battlerType & 0x1) { - v4->unk_13 = 2; - v4->unk_0C = ov16_0223E020(battleSys, 1); - ManagedSprite_SetPositionXY(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[battlerData->battlerType & 1][0], 8 * 11); + if (battlerData->battlerType & BATTLER_THEM) { + monEncounterData->face = FACE_FRONT; + monEncounterData->unk_0C = ov16_0223E020(battleSys, 1); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, gEncounterCoords[battlerData->battlerType & BATTLER_THEM][0], 8 * 11); } else { - v4->unk_13 = 0; - v4->unk_0C = ov16_0223E020(battleSys, 0); - ManagedSprite_SetPositionXY(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[battlerData->battlerType & 1][0], 128 + 8); + monEncounterData->face = FACE_BACK; + monEncounterData->unk_0C = ov16_0223E020(battleSys, 0); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, gEncounterCoords[battlerData->battlerType & BATTLER_THEM][0], 128 + 8); } - if (message->isShiny) { - v0 = 1; + isShiny = !!message->isShiny; + + BuildPokemonSpriteTemplate(&spriteTemplate, message->species, message->gender, monEncounterData->face, isShiny, message->formNum, message->personality); + + yOffset = LoadPokemonSpriteYOffset(message->species, message->gender, monEncounterData->face, message->formNum, message->personality); + + PokemonSprite_LoadYOffset(battlerData->narc, &height, message->species); + PokemonSprite_LoadXOffsetShadow(battlerData->narc, &shadowXOffset, message->species); + PokemonSprite_LoadShadowSize(battlerData->narc, &shadowSize, message->species); + PokemonSprite_LoadAnimFrames(battlerData->narc, &animFrames[0], message->species, battlerData->battlerType); + + monEncounterData->sprite = battlerData->monSprite = ov16_02263B30(battleSys, spriteMan, &spriteTemplate, gEncounterCoords[battlerData->battlerType][0], gEncounterCoords[battlerData->battlerType][1], gEncounterCoords[battlerData->battlerType][2], yOffset, height, shadowXOffset, shadowSize, battlerData->battler, &animFrames[0], NULL); + + if (monEncounterData->face == FACE_FRONT) { + PokemonSprite_StartFade(monEncounterData->sprite, 8, 8, 0, 0x0); + } + + if (monEncounterData->face == FACE_FRONT && (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_GIRATINA)) { + int v10 = ((24 * 8) - -80) / 2; + int v11 = PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_Y_CENTER); + + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_SHADOW_SIZE, 0); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, 256 - 64); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_Y_CENTER, v11 - v10); + + monEncounterData->unk_14 = v11; } else { - v0 = 0; + monEncounterData->unk_14 = Unk_ov12_0223B0A0[battlerData->battlerType][0]; } - BuildPokemonSpriteTemplate(&v1, message->species, message->gender, v4->unk_13, v0, message->formNum, message->personality); + monEncounterData->battleSys = battleSys; + monEncounterData->battlerData = battlerData; + monEncounterData->command = message->command; + monEncounterData->battler = battlerData->battler; + monEncounterData->species = message->species; + monEncounterData->formNum = message->formNum; + monEncounterData->cryMod = message->cryModulation; + monEncounterData->battlerType = battlerData->battlerType; + monEncounterData->nature = Pokemon_GetNatureOf(message->personality); + monEncounterData->isShiny = message->isShiny; - v6 = LoadPokemonSpriteYOffset(message->species, message->gender, v4->unk_13, message->formNum, message->personality); - - PokemonSprite_LoadYOffset(battlerData->narc, &v7, message->species); - PokemonSprite_LoadXOffsetShadow(battlerData->narc, &v8, message->species); - PokemonSprite_LoadShadowSize(battlerData->narc, &v9, message->species); - PokemonSprite_LoadAnimFrames(battlerData->narc, &v3[0], message->species, battlerData->battlerType); - - v4->unk_08 = battlerData->monSprite = ov16_02263B30(battleSys, v2, &v1, Unk_ov12_0223B0B8[battlerData->battlerType][0], Unk_ov12_0223B0B8[battlerData->battlerType][1], Unk_ov12_0223B0B8[battlerData->battlerType][2], v6, v7, v8, v9, battlerData->battler, &v3[0], NULL); - - if (v4->unk_13 == 2) { - PokemonSprite_StartFade(v4->unk_08, 8, 8, 0, 0x0); - } - - if ((v4->unk_13 == 2) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x40)) { - int v10, v11; - - v11 = PokemonSprite_GetAttribute(v4->unk_08, MON_SPRITE_Y_CENTER); - v10 = ((24 * 8) - -80) / 2; - - PokemonSprite_SetAttribute(v4->unk_08, MON_SPRITE_SHADOW_SIZE, 0); - PokemonSprite_SetAttribute(v4->unk_08, MON_SPRITE_X_CENTER, 256 - 64); - PokemonSprite_SetAttribute(v4->unk_08, MON_SPRITE_Y_CENTER, v11 - v10); - - v4->unk_14 = v11; + if (monEncounterData->face == FACE_FRONT && (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_GIRATINA)) { + SysTask_Start(Task_SetGiratinaEncounter, monEncounterData, 0); } else { - v4->unk_14 = Unk_ov12_0223B0A0[battlerData->battlerType][0]; + SysTask_Start(Task_SetEncounter, monEncounterData, 0); } - v4->battleSys = battleSys; - v4->battlerData = battlerData; - v4->unk_10 = message->command; - v4->unk_11 = battlerData->battler; - v4->unk_16 = message->species; - v4->unk_2C = message->formNum; - v4->unk_18 = message->cryModulation; - v4->unk_1C = battlerData->battlerType; - v4->unk_24 = Pokemon_GetNatureOf(message->personality); - v4->unk_28 = message->isShiny; - - if ((v4->unk_13 == 2) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x40)) { - SysTask_Start(ov16_0225E894, v4, 0); - } else { - SysTask_Start(ov16_0225E4E8, v4, 0); - } - - Sound_Set2PokemonCriesAllowed(1); + Sound_Set2PokemonCriesAllowed(TRUE); } -void ov16_0225CE1C(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message) +typedef struct MonShowData { + BattleSystem *battleSys; + BattlerData *battlerData; + UnkStruct_ov12_02235FE0 *unk_08; + BallRotation *ballRotation; + UnkStruct_ov12_02223764 *unk_10; + PokemonSpriteTemplate spriteTemplate; + BattleAnimSystem *battleAnimSys; + MoveAnimation moveAnim; + u8 command; + u8 battler; + u8 battlerType; + u8 state; + u8 face; + u8 yOffset; + u16 species; + enum PokemonCryMod cryMod; + u8 selectedPartySlot; + u8 nature; + u16 capturedBall; + s8 height; + s8 shadowXOffset; + u8 isShiny; + u8 shadowSize; + u16 unk_94; + u8 delay; + u8 formNum; + int isSubstitute; +} MonShowData; + +void BattleDisplay_InitTaskShowEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message) { - int v0; - UnkStruct_ov16_0225EA80 *v1; + BOOL isShiny; + MonShowData *monShowData; int battleType = BattleSystem_GetBattleType(battleSys); - v1 = (UnkStruct_ov16_0225EA80 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225EA80)); + monShowData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(MonShowData)); - if (battlerData->battlerType & 0x1) { - v1->unk_84 = 2; + if (battlerData->battlerType & BATTLER_THEM) { + monShowData->face = FACE_FRONT; } else { - v1->unk_84 = 0; + monShowData->face = FACE_BACK; } - if (message->isShiny) { - v0 = 1; - } else { - v0 = 0; - } + isShiny = !!message->isShiny; - BuildPokemonSpriteTemplate(&v1->unk_14, message->species, message->gender, v1->unk_84, v0, message->formNum, message->personality); + BuildPokemonSpriteTemplate(&monShowData->spriteTemplate, message->species, message->gender, monShowData->face, isShiny, message->formNum, message->personality); - v1->unk_85 = LoadPokemonSpriteYOffset(message->species, message->gender, v1->unk_84, message->formNum, message->personality); + monShowData->yOffset = LoadPokemonSpriteYOffset(message->species, message->gender, monShowData->face, message->formNum, message->personality); - PokemonSprite_LoadYOffset(battlerData->narc, &v1->unk_90, message->species); - PokemonSprite_LoadXOffsetShadow(battlerData->narc, &v1->unk_91, message->species); - PokemonSprite_LoadShadowSize(battlerData->narc, &v1->unk_93, message->species); + PokemonSprite_LoadYOffset(battlerData->narc, &monShowData->height, message->species); + PokemonSprite_LoadXOffsetShadow(battlerData->narc, &monShowData->shadowXOffset, message->species); + PokemonSprite_LoadShadowSize(battlerData->narc, &monShowData->shadowSize, message->species); ov16_02263B10(battlerData); - v1->battleSys = battleSys; - v1->battlerData = battlerData; - v1->unk_83 = 0; - v1->unk_96 = 0; - v1->unk_80 = message->command; - v1->unk_81 = battlerData->battler; - v1->unk_86 = message->species; - v1->unk_97 = message->formNum; - v1->unk_82 = battlerData->battlerType; - v1->unk_88 = message->cryModulation; - v1->unk_8C = message->selectedPartySlot; - v1->unk_8D = Pokemon_GetNatureOf(message->personality); - v1->unk_8E = message->capturedBall; - v1->unk_92 = message->isShiny; - v1->unk_94 = 0; + monShowData->battleSys = battleSys; + monShowData->battlerData = battlerData; + monShowData->state = 0; + monShowData->delay = 0; + monShowData->command = message->command; + monShowData->battler = battlerData->battler; + monShowData->species = message->species; + monShowData->formNum = message->formNum; + monShowData->battlerType = battlerData->battlerType; + monShowData->cryMod = message->cryModulation; + monShowData->selectedPartySlot = message->selectedPartySlot; + monShowData->nature = Pokemon_GetNatureOf(message->personality); + monShowData->capturedBall = message->capturedBall; + monShowData->isShiny = message->isShiny; + monShowData->unk_94 = 0; - Sound_Set2PokemonCriesAllowed(1); - SysTask_Start(ov16_0225EA80, v1, 0); + Sound_Set2PokemonCriesAllowed(TRUE); + SysTask_Start(Task_ShowEncounter, monShowData, 0); } -void ov16_0225CF70(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message) +void BattleDisplay_InitTaskShowPokemon(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message) { - int i; - int v1; - UnkStruct_ov16_0225EA80 *v2; + BOOL isShiny; + MonShowData *monShowData; int battleType = BattleSystem_GetBattleType(battleSys); - v2 = (UnkStruct_ov16_0225EA80 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225EA80)); - v2->unk_83 = 0; + monShowData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(MonShowData)); + monShowData->state = 0; - if (battlerData->battlerType & 0x1) { - v2->unk_84 = 2; + if (battlerData->battlerType & BATTLER_THEM) { + monShowData->face = FACE_FRONT; } else { - v2->unk_84 = 0; + monShowData->face = FACE_BACK; } - if (message->isShiny) { - v1 = 1; - } else { - v1 = 0; - } + isShiny = !!message->isShiny; - BuildPokemonSpriteTemplate(&v2->unk_14, message->species, message->gender, v2->unk_84, v1, message->formNum, message->personality); + BuildPokemonSpriteTemplate(&monShowData->spriteTemplate, message->species, message->gender, monShowData->face, isShiny, message->formNum, message->personality); - v2->unk_85 = LoadPokemonSpriteYOffset(message->species, message->gender, v2->unk_84, message->formNum, message->personality); + monShowData->yOffset = LoadPokemonSpriteYOffset(message->species, message->gender, monShowData->face, message->formNum, message->personality); - PokemonSprite_LoadYOffset(battlerData->narc, &v2->unk_90, message->species); - PokemonSprite_LoadXOffsetShadow(battlerData->narc, &v2->unk_91, message->species); - PokemonSprite_LoadShadowSize(battlerData->narc, &v2->unk_93, message->species); + PokemonSprite_LoadYOffset(battlerData->narc, &monShowData->height, message->species); + PokemonSprite_LoadXOffsetShadow(battlerData->narc, &monShowData->shadowXOffset, message->species); + PokemonSprite_LoadShadowSize(battlerData->narc, &monShowData->shadowSize, message->species); ov16_02263B10(battlerData); - v2->battleSys = battleSys; - v2->battlerData = battlerData; - v2->unk_80 = message->command; - v2->unk_81 = battlerData->battler; - v2->unk_86 = message->species; - v2->unk_97 = message->formNum; - v2->unk_82 = battlerData->battlerType; - v2->unk_88 = message->cryModulation; - v2->unk_8C = message->selectedPartySlot; - v2->unk_8D = Pokemon_GetNatureOf(message->personality); - v2->unk_8E = message->capturedBall; - v2->unk_92 = message->isShiny; - v2->unk_94 = message->unk_14; - v2->unk_96 = 0; - v2->unk_98 = message->notSubstitute; + monShowData->battleSys = battleSys; + monShowData->battlerData = battlerData; + monShowData->command = message->command; + monShowData->battler = battlerData->battler; + monShowData->species = message->species; + monShowData->formNum = message->formNum; + monShowData->battlerType = battlerData->battlerType; + monShowData->cryMod = message->cryModulation; + monShowData->selectedPartySlot = message->selectedPartySlot; + monShowData->nature = Pokemon_GetNatureOf(message->personality); + monShowData->capturedBall = message->capturedBall; + monShowData->isShiny = message->isShiny; + monShowData->unk_94 = message->unk_14; + monShowData->delay = 0; + monShowData->isSubstitute = message->isSubstitute; - for (i = 0; i < 4; i++) { - v2->unk_28.species[i] = message->battleMonSpecies[i]; - v2->unk_28.genders[i] = message->battleMonGenders[i]; - v2->unk_28.isShiny[i] = message->battleMonIsShiny[i]; - v2->unk_28.formNums[i] = message->battleMonFormNums[i]; - v2->unk_28.personalities[i] = message->battleMonPersonalities[i]; + for (int i = 0; i < MAX_BATTLERS; i++) { + monShowData->moveAnim.species[i] = message->battleMonSpecies[i]; + monShowData->moveAnim.genders[i] = message->battleMonGenders[i]; + monShowData->moveAnim.isShiny[i] = message->battleMonIsShiny[i]; + monShowData->moveAnim.formNums[i] = message->battleMonFormNums[i]; + monShowData->moveAnim.personalities[i] = message->battleMonPersonalities[i]; } - SysTask_Start(ov16_0225F0C0, v2, 0); + SysTask_Start(Task_ShowPokemon, monShowData, 0); } -void ov16_0225D118(BattleSystem *battleSys, BattlerData *battlerData, MonReturnMessage *message) -{ - int i; - UnkStruct_ov16_0225F764 *v1 = (UnkStruct_ov16_0225F764 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225F764)); - v1->battleSys = battleSys; - v1->battlerData = battlerData; - v1->unk_08 = battlerData->monSprite; - v1->unk_68 = message->command; - v1->unk_69 = battlerData->battler; - v1->unk_6A = battlerData->battlerType; - v1->unk_6B = 0; - v1->unk_6C = message->yOffset; - v1->unk_6E = message->capturedBall; - v1->unk_70 = message->notSubstitute; +typedef struct MonReturnData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *monSprite; + BallRotation *ballRotation; + MoveAnimation moveAnim; + u8 command; + u8 battler; + u8 battlerType; + u8 state; + u8 yOffset; + u8 unused; + u16 capturedBall; + int isSubstitute; +} MonReturnData; - for (i = 0; i < 4; i++) { - v1->unk_10.species[i] = message->battleMonSpecies[i]; - v1->unk_10.genders[i] = message->battleMonGenders[i]; - v1->unk_10.isShiny[i] = message->battleMonIsShiny[i]; - v1->unk_10.formNums[i] = message->battleMonFormNums[i]; - v1->unk_10.personalities[i] = message->battleMonPersonalities[i]; +void BattleDisplay_InitTaskReturnPokemon(BattleSystem *battleSys, BattlerData *battlerData, MonReturnMessage *message) +{ + MonReturnData *monReturnData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(MonReturnData)); + monReturnData->battleSys = battleSys; + monReturnData->battlerData = battlerData; + monReturnData->monSprite = battlerData->monSprite; + monReturnData->command = message->command; + monReturnData->battler = battlerData->battler; + monReturnData->battlerType = battlerData->battlerType; + monReturnData->state = 0; + monReturnData->yOffset = message->yOffset; + monReturnData->capturedBall = message->capturedBall; + monReturnData->isSubstitute = message->isSubstitute; + + for (int i = 0; i < MAX_BATTLERS; i++) { + monReturnData->moveAnim.species[i] = message->battleMonSpecies[i]; + monReturnData->moveAnim.genders[i] = message->battleMonGenders[i]; + monReturnData->moveAnim.isShiny[i] = message->battleMonIsShiny[i]; + monReturnData->moveAnim.formNums[i] = message->battleMonFormNums[i]; + monReturnData->moveAnim.personalities[i] = message->battleMonPersonalities[i]; } - SysTask_Start(ov16_0225F764, v1, 0); + SysTask_Start(Task_ReturnPokemon, monReturnData, 0); } -void ov16_0225D1C4(BattleSystem *battleSys, BattlerData *battlerData, CaptureOpenBallMessage *message) +typedef struct OpenCaptureBallData { + BattleSystem *battleSys; + PokemonSprite *monSprite; + u8 command; + u8 battler; + u8 battlerType; + u8 state; + u8 yOffset; + u8 unused_0D; + u16 unused_0E; +} OpenCaptureBallData; + +void BattleDisplay_InitTaskOpenCaptureBall(BattleSystem *battleSys, BattlerData *battlerData, OpenCaptureBallMessage *message) { - UnkStruct_ov16_0225D1C4 *v0 = (UnkStruct_ov16_0225D1C4 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D1C4)); + OpenCaptureBallData *captureOpenBallData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(OpenCaptureBallData)); - v0->battleSys = battleSys; - v0->unk_04 = battlerData->monSprite; - v0->unk_08 = message->command; - v0->unk_09 = battlerData->battler; - v0->unk_0A = battlerData->battlerType; - v0->unk_0B = 0; - v0->unk_0C = message->yOffset; + captureOpenBallData->battleSys = battleSys; + captureOpenBallData->monSprite = battlerData->monSprite; + captureOpenBallData->command = message->command; + captureOpenBallData->battler = battlerData->battler; + captureOpenBallData->battlerType = battlerData->battlerType; + captureOpenBallData->state = 0; + captureOpenBallData->yOffset = message->yOffset; - PokemonSprite_StartFade(v0->unk_04, 0, 16, 0, Unk_ov16_0226F1AE[message->ball]); - PokemonSprite_SetAttribute(v0->unk_04, MON_SPRITE_SHADOW_IS_AFFINE, 1); - SysTask_Start(ov16_0225FA00, v0, 0); + PokemonSprite_StartFade(captureOpenBallData->monSprite, 0, 16, 0, sFadeColors[message->ball]); + PokemonSprite_SetAttribute(captureOpenBallData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 1); + SysTask_Start(Task_OpenCaptureBall, captureOpenBallData, 0); } -void ov16_0225D228(BattleSystem *battleSys, BattlerData *battlerData, TrainerEncounterMessage *message) +void BattleDisplay_InitTaskSetTrainerEncounter(BattleSystem *battleSys, BattlerData *battlerData, TrainerEncounterMessage *message) { - int v0; - UnkStruct_ov16_02264650_1 *v1; - int v2; + TrainerEncounterData *trainerEncounterData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(TrainerEncounterData)); + int side; - v1 = (UnkStruct_ov16_02264650_1 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_02264650_1)); - v1->unk_0E = 0; + trainerEncounterData->state = 0; - if (battlerData->battlerType & 0x1) { - v1->unk_0F = 2; - v1->unk_04 = ov16_0223E020(battleSys, 1); - ManagedSprite_SetPositionXY(v1->unk_04->unk_00, Unk_ov12_0223B0B8[battlerData->battlerType & 1][0], 8 * 11); + if (battlerData->battlerType & BATTLER_THEM) { + trainerEncounterData->face = FACE_FRONT; + trainerEncounterData->unk_04 = ov16_0223E020(battleSys, 1); + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, gEncounterCoords[battlerData->battlerType & BATTLER_THEM][0], 8 * 11); } else { - v1->unk_0F = 0; - v1->unk_04 = ov16_0223E020(battleSys, 0); - ManagedSprite_SetPositionXY(v1->unk_04->unk_00, Unk_ov12_0223B0B8[battlerData->battlerType & 1][0], 128 + 8); + trainerEncounterData->face = FACE_BACK; + trainerEncounterData->unk_04 = ov16_0223E020(battleSys, 0); + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, gEncounterCoords[battlerData->battlerType & BATTLER_THEM][0], 128 + 8); } - if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) || ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) && (battlerData->battlerType & BATTLE_TYPE_TRAINER))) { - v2 = battlerData->battlerType; + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) + || ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) && (battlerData->battlerType & BATTLE_TYPE_TRAINER))) { + side = battlerData->battlerType; } else { - v2 = battlerData->battlerType & 1; + side = battlerData->battlerType & BATTLER_THEM; } message->trainerType = ov16_02264768(battleSys, battlerData->battler, message->trainerType); - v1->unk_08 = battlerData->managedSprite = ov16_022643B8(battleSys, v2, message->trainerType, battlerData->battlerType, Unk_ov12_0223B0B8[v2][0], Unk_ov12_0223B0B8[v2][1]); - v1->unk_10 = Unk_ov12_0223B0A0[v2][0]; - v1->battleSys = battleSys; - v1->unk_0C = message->command; - v1->unk_0D = battlerData->battler; - v1->unk_14 = battlerData->battlerType; - v1->unk_1C = 0; + trainerEncounterData->managedSprite = battlerData->managedSprite = BattleDisplay_NewManagedSpriteTrainer(battleSys, + side, + message->trainerType, + battlerData->battlerType, + gEncounterCoords[side][0], + gEncounterCoords[side][1]); + trainerEncounterData->unk_10 = Unk_ov12_0223B0A0[side][0]; + trainerEncounterData->battleSys = battleSys; + trainerEncounterData->command = message->command; + trainerEncounterData->battler = battlerData->battler; + trainerEncounterData->battlerType = battlerData->battlerType; + trainerEncounterData->unk_1C = 0; - if ((v1->unk_14 == 0) || (v1->unk_14 == 2)) { + if (trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER + || trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { Bg_SetOffset(BattleSystem_GetBgConfig(battleSys), 3, 2, 4 * 33); } - SysTask_Start(ov16_0225FA70, v1, 0); + SysTask_Start(Task_SetTrainerEncounter, trainerEncounterData, 0); } -void ov16_0225D360(BattleSystem *battleSys, BattlerData *battlerData, TrainerThrowBallMessage *message) +typedef struct TrainerThrowBallData { + BattleSystem *battleSys; + BattlerData *battlerData; + u8 command; + u8 battler; + u8 state; + u8 face; + int unk_0C; + int ballTypeIn; + int delay; + int unk_18; +} TrainerThrowBallData; + +void BattleDisplay_InitTaskThrowTrainerBall(BattleSystem *battleSys, BattlerData *battlerData, TrainerThrowBallMessage *message) { - UnkStruct_ov16_0225D360 *v0 = (UnkStruct_ov16_0225D360 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D360)); + TrainerThrowBallData *trainerThrowBallData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(TrainerThrowBallData)); - v0->unk_0A = 0; - v0->battleSys = battleSys; - v0->unk_08 = message->command; - v0->unk_10 = message->ballTypeIn; - v0->unk_09 = battlerData->battler; - v0->battlerData = battlerData; + trainerThrowBallData->state = 0; + trainerThrowBallData->battleSys = battleSys; + trainerThrowBallData->command = message->command; + trainerThrowBallData->ballTypeIn = message->ballTypeIn; + trainerThrowBallData->battler = battlerData->battler; + trainerThrowBallData->battlerData = battlerData; - if (battlerData->battlerType & 0x1) { - v0->unk_0B = 2; - v0->unk_0C = 0; + if (battlerData->battlerType & BATTLER_THEM) { + trainerThrowBallData->face = FACE_FRONT; + trainerThrowBallData->unk_0C = 0; } else { - { - Trainer *trainer = BattleSystem_GetTrainer(battleSys, battlerData->battler); - v0->unk_0B = 0; - v0->unk_0C = sub_020788D0(ov16_02264768(battleSys, battlerData->battler, trainer->header.trainerType)); - } + Trainer *trainer = BattleSystem_GetTrainer(battleSys, battlerData->battler); + trainerThrowBallData->face = FACE_BACK; + trainerThrowBallData->unk_0C = sub_020788D0(ov16_02264768(battleSys, battlerData->battler, trainer->header.trainerType)); } - SysTask_Start(ov16_0225FD5C, v0, 0); + SysTask_Start(Task_ThrowTrainerBall, trainerThrowBallData, 0); } -void ov16_0225D3CC(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct SlideTrainerOutData { + BattleSystem *battleSys; + BattlerData *battlerData; + u8 command; + u8 battler; + u8 state; + u8 face; + int unused; +} SlideTrainerOutData; + +void BattleDisplay_InitTaskSlideTrainerOut(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225D3CC *v0 = (UnkStruct_ov16_0225D3CC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D3CC)); + SlideTrainerOutData *slideTrainerOutData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(SlideTrainerOutData)); - v0->unk_0A = 0; - v0->battleSys = battleSys; - v0->unk_08 = battlerData->data[0]; - v0->unk_09 = battlerData->battler; - v0->battlerData = battlerData; + slideTrainerOutData->state = 0; + slideTrainerOutData->battleSys = battleSys; + slideTrainerOutData->command = battlerData->data[0]; + slideTrainerOutData->battler = battlerData->battler; + slideTrainerOutData->battlerData = battlerData; - if (battlerData->battlerType & 0x1) { - v0->unk_0B = 2; + if (battlerData->battlerType & BATTLER_THEM) { + slideTrainerOutData->face = FACE_FRONT; } else { - v0->unk_0B = 0; + slideTrainerOutData->face = FACE_BACK; } - SysTask_Start(ov16_02260284, v0, 0); + SysTask_Start(Task_SlideTrainerOut, slideTrainerOutData, 0); } -void ov16_0225D414(BattleSystem *battleSys, BattlerData *battlerData, TrainerSlideInMessage *message) +typedef struct SlideTrainerInData { + BattleSystem *battleSys; + ManagedSprite *managedSprite; + u8 command; + u8 battler; + u8 state; + u8 face; + s16 x; + u16 unused; +} SlideTrainerInData; + +void BattleDisplay_InitTaskSlideTrainerIn(BattleSystem *battleSys, BattlerData *battlerData, TrainerSlideInMessage *message) { - int v0; - PokemonSpriteTemplate v1; - PokemonSpriteManager *v2; - UnkStruct_ov16_02260384 *v3; - u32 v4; + PokemonSpriteManager *unused = BattleSystem_GetPokemonSpriteManager(battleSys); + SlideTrainerInData *slideTrainerInData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(SlideTrainerInData)); + slideTrainerInData->state = 0; - v2 = BattleSystem_GetPokemonSpriteManager(battleSys); - v3 = (UnkStruct_ov16_02260384 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_02260384)); - v3->unk_0A = 0; - - if (battlerData->battlerType & 0x1) { - v3->unk_0B = 2; + if (battlerData->battlerType & BATTLER_THEM) { + slideTrainerInData->face = FACE_FRONT; } else { - v3->unk_0B = 0; + slideTrainerInData->face = FACE_BACK; } - v3->unk_04 = battlerData->managedSprite = ov16_022643B8(battleSys, battlerData->battlerType & 1, message->trainerType, battlerData->battlerType, Unk_ov12_0223B0DC[battlerData->battlerType & 1][0], Unk_ov12_0223B0DC[battlerData->battlerType & 1][1]); - v3->unk_0C = Unk_ov12_0223B0A0[battlerData->battlerType & 1][message->posIn]; - v3->battleSys = battleSys; - v3->unk_08 = message->command; - v3->unk_09 = battlerData->battler; + slideTrainerInData->managedSprite = battlerData->managedSprite = BattleDisplay_NewManagedSpriteTrainer(battleSys, + battlerData->battlerType & BATTLER_THEM, + message->trainerType, + battlerData->battlerType, + gSlideTrainerInCoords[battlerData->battlerType & BATTLER_THEM][0], + gSlideTrainerInCoords[battlerData->battlerType & BATTLER_THEM][1]); + slideTrainerInData->x = Unk_ov12_0223B0A0[battlerData->battlerType & BATTLER_THEM][message->posIn]; + slideTrainerInData->battleSys = battleSys; + slideTrainerInData->command = message->command; + slideTrainerInData->battler = battlerData->battler; - SysTask_Start(ov16_02260384, v3, 0); + SysTask_Start(Task_SlideTrainerIn, slideTrainerInData, 0); } -void BattleDisplay_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battlerData, HealthbarData *healthbarData) +void BattleDisplay_InitTaskSlideHealthbarIn(BattleSystem *battleSys, BattlerData *battlerData, HealthbarData *healthbarData) { Healthbar *healthbar = &battlerData->healthbar; MI_CpuClearFast(&healthbar->state, sizeof(u8)); @@ -580,10 +675,10 @@ void BattleDisplay_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battle Healthbar_Enable(healthbar, FALSE); Healthbar_DrawInfo(healthbar, healthbar->curHP, HEALTHBAR_INFO_ALL); - healthbar->task_10 = SysTask_Start(SlideHealthbarInTask, healthbar, 1000); + healthbar->task_10 = SysTask_Start(Task_SlideHealthbarIn, healthbar, 1000); } -void BattleDisplay_SlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData) +void BattleDisplay_InitTaskSlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData) { Healthbar *healthbar = &battlerData->healthbar; MI_CpuClearFast(&healthbar->state, sizeof(u8)); @@ -594,188 +689,278 @@ void BattleDisplay_SlideHealthbarOut(BattleSystem *battleSys, BattlerData *battl Healthbar_Scroll(healthbar, HEALTHBAR_SCROLL_OUT); - healthbar->task_10 = SysTask_Start(SlideHealthbarOutTask, healthbar, 1000); + healthbar->task_10 = SysTask_Start(Task_SlideHealthbarOut, healthbar, 1000); } -void ov16_0225D5B8(BattleSystem *battleSys, BattlerData *battlerData, CommandSetMessage *message) +typedef struct CommandSetData { + BattleSystem *battleSys; + void *healthbar; + u8 command; + u8 battler; + u8 state; + s8 unused_0B; + int input; + u8 ballStatus[PARTY_GAUGE_COUNT][MAX_PARTY_SIZE]; + u8 expPercents[MAX_PARTY_SIZE]; + u8 unused_22; + u8 partySlot; + u16 moves[MAX_BATTLERS]; + u8 curPP[MAX_BATTLERS]; + u8 maxPP[MAX_BATTLERS]; + u8 battlerType; + u8 msgIdx; + s16 curHP; + u16 maxHP; + u8 ballStatusBattler; + u8 switchingOrCanPickCommandMask; +} CommandSetData; + +void BattleDisplay_InitTaskSetCommandSelection(BattleSystem *battleSys, BattlerData *battlerData, CommandSetMessage *message) { - UnkStruct_ov16_0225D5B8 *v0; - int i, j; - - v0 = (UnkStruct_ov16_0225D5B8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D5B8)); - MI_CpuClearFast(v0, sizeof(UnkStruct_ov16_0225D5B8)); - - v0->unk_0A = 0; - v0->unk_0B = 0; - v0->battleSys = battleSys; - v0->unk_08 = message->command; - v0->unk_09 = battlerData->battler; - v0->unk_34 = battlerData->battlerType; - v0->unk_04 = &battlerData->healthbar; - v0->unk_23 = message->partySlot; - v0->unk_36 = message->curHP; - v0->unk_38 = message->maxHP; - v0->unk_3A = message->ballStatusBattler; - v0->unk_3B = message->unk_29; - - for (i = 0; i < 2; i++) { - for (j = 0; j < 6; j++) { - v0->unk_10[i][j] = message->ballStatus[i][j]; - } - } - - for (i = 0; i < 6; i++) { - if (message->ballStatus[0][i] == STOCK_STATUS_MON_FAINTED) { - v0->unk_1C[i] = 0; - } else { - v0->unk_1C[i] = message->expPercents[i]; - } - } - - { - int v3; - - for (v3 = 0; v3 < 4; v3++) { - v0->unk_24[v3] = message->moves[v3]; - v0->unk_2C[v3] = message->curPP[v3]; - v0->unk_30[v3] = message->maxPP[v3]; - } - } - - SysTask_Start(battlerData->taskFuncs.func_00, v0, 0); -} - -void ov16_0225D698(BattleSystem *battleSys, BattlerData *battlerData, MoveSelectMenuMessage *message) -{ - UnkStruct_ov16_0225D698 *v0; + CommandSetData *commandSetData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(CommandSetData)); int i; + MI_CpuClearFast(commandSetData, sizeof(CommandSetData)); - v0 = (UnkStruct_ov16_0225D698 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D698)); + commandSetData->state = 0; + commandSetData->unused_0B = 0; + commandSetData->battleSys = battleSys; + commandSetData->command = message->command; + commandSetData->battler = battlerData->battler; + commandSetData->battlerType = battlerData->battlerType; + commandSetData->healthbar = &battlerData->healthbar; + commandSetData->partySlot = message->partySlot; + commandSetData->curHP = message->curHP; + commandSetData->maxHP = message->maxHP; + commandSetData->ballStatusBattler = message->ballStatusBattler; + commandSetData->switchingOrCanPickCommandMask = message->switchingOrCanPickCommandMask; - v0->unk_20 = 0; - v0->battleSys = battleSys; - v0->unk_1C = battlerData->data[0]; - v0->unk_1D = battlerData->battler; - v0->unk_1E = battlerData->battlerType; - v0->unk_04 = &battlerData->healthbar; - v0->unk_1F = message->partySlot; - - for (i = 0; i < 4; i++) { - v0->unk_0C[i] = message->moves[i]; - v0->unk_14[i] = message->ppCur[i]; - v0->unk_18[i] = message->ppMax[i]; + for (i = 0; i < PARTY_GAUGE_COUNT; i++) { + for (int j = 0; j < MAX_PARTY_SIZE; j++) { + commandSetData->ballStatus[i][j] = message->ballStatus[i][j]; + } } - v0->unk_22 = message->invalidMoves; + for (i = 0; i < MAX_PARTY_SIZE; i++) { + if (message->ballStatus[0][i] == STOCK_STATUS_MON_FAINTED) { + commandSetData->expPercents[i] = 0; + } else { + commandSetData->expPercents[i] = message->expPercents[i]; + } + } - SysTask_Start(battlerData->taskFuncs.func_04, v0, 0); + for (int battler = 0; battler < MAX_BATTLERS; battler++) { + commandSetData->moves[battler] = message->moves[battler]; + commandSetData->curPP[battler] = message->curPP[battler]; + commandSetData->maxPP[battler] = message->maxPP[battler]; + } + + SysTask_Start(battlerData->taskFuncs.setCommandSelection, commandSetData, 0); } -void ov16_0225D708(BattleSystem *battleSys, BattlerData *battlerData, TargetSelectMenuMessage *message) +typedef struct MoveSelectMenuData { + BattleSystem *battleSys; + void *healthbar; + int input; + u16 moves[MAX_BATTLERS]; + u8 ppCur[MAX_BATTLERS]; + u8 ppMax[MAX_BATTLERS]; + u8 command; + u8 battler; + u8 battlerType; + u8 partySlot; + u8 state; + u8 unused; + u16 invalidMoves; +} MoveSelectMenuData; + +void BattleDisplay_InitTaskShowMoveSelectMenu(BattleSystem *battleSys, BattlerData *battlerData, MoveSelectMenuMessage *message) { - UnkStruct_ov16_0225D708 *v0; - int i, v2; + MoveSelectMenuData *moveSelectMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(MoveSelectMenuData)); + + moveSelectMenuData->state = 0; + moveSelectMenuData->battleSys = battleSys; + moveSelectMenuData->command = battlerData->data[0]; + moveSelectMenuData->battler = battlerData->battler; + moveSelectMenuData->battlerType = battlerData->battlerType; + moveSelectMenuData->healthbar = &battlerData->healthbar; + moveSelectMenuData->partySlot = message->partySlot; + + for (int i = 0; i < MAX_BATTLERS; i++) { + moveSelectMenuData->moves[i] = message->moves[i]; + moveSelectMenuData->ppCur[i] = message->ppCur[i]; + moveSelectMenuData->ppMax[i] = message->ppMax[i]; + } + + moveSelectMenuData->invalidMoves = message->invalidMoves; + + SysTask_Start(battlerData->taskFuncs.showMoveSelectMenu, moveSelectMenuData, 0); +} + +#include "battle/struct_ov16_0225C29C_sub1.h" + +typedef struct TargetSelectMenuData { + BattleSystem *battleSys; + void *healthbar; + int input; + u8 command; + u8 battler; + u8 battlerType; + u8 state; + UnkStruct_ov16_0225C29C_sub1 targetMon[MAX_BATTLERS]; + u16 range; + u8 unk_32; + u8 unused; +} TargetSelectMenuData; + +void BattleDisplay_InitTaskShowTargetSelectMenu(BattleSystem *battleSys, BattlerData *battlerData, TargetSelectMenuMessage *message) +{ + TargetSelectMenuData *targetSelectMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(TargetSelectMenuData)); + int maxBattlers; u32 battleType; - u8 v4[6]; + u8 battlerTypes[6]; - v0 = (UnkStruct_ov16_0225D708 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D708)); + targetSelectMenuData->state = 0; + targetSelectMenuData->battleSys = battleSys; + targetSelectMenuData->command = battlerData->data[0]; + targetSelectMenuData->battler = battlerData->battler; + targetSelectMenuData->battlerType = battlerData->battlerType; + targetSelectMenuData->range = message->range; + targetSelectMenuData->healthbar = &battlerData->healthbar; + targetSelectMenuData->unk_32 = message->unk_01; - v0->unk_0F = 0; - v0->battleSys = battleSys; - v0->unk_0C = battlerData->data[0]; - v0->unk_0D = battlerData->battler; - v0->unk_0E = battlerData->battlerType; - v0->unk_30 = message->range; - v0->unk_04 = &battlerData->healthbar; - v0->unk_32 = message->unk_01; + BattleSystem_SetBattlerTypes(battleSys, &battlerTypes[0]); - ov16_0223F87C(battleSys, &v4[0]); - - v2 = BattleSystem_GetMaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); battleType = BattleSystem_GetBattleType(battleSys); - for (i = 0; i < v2; i++) { - v0->unk_10[i] = message->targetMon[i]; + for (int i = 0; i < maxBattlers; i++) { + targetSelectMenuData->targetMon[i] = message->targetMon[i]; } - SysTask_Start(battlerData->taskFuncs.func_08, v0, 0); + SysTask_Start(battlerData->taskFuncs.showTargetSelectMenu, targetSelectMenuData, 0); } -void ov16_0225D794(BattleSystem *battleSys, BattlerData *battlerData, BagMenuMessage *message) +#include "battle_sub_menus/battle_party.h" + +typedef struct PartyMenuData { + BattleSystem *battleSys; + BattlePartyContext *battlePartyCtx; + u8 command; + u8 battler; + u8 state; + u8 listMode; + u8 partySlots[MAX_BATTLERS]; + int canSwitch; + u16 selectedBattleBagItem; + u8 doublesSelection; + u8 isCursorEnabled; + u8 battlersSwitchingMask; + u8 unused[3]; + u8 partyOrder[MAX_BATTLERS][MAX_PARTY_SIZE]; +} PartyMenuData; + +typedef struct BagMenuData { + BattleSystem *battleSys; + BattleBagContext *battleBagCtx; + PartyMenuData *partyMenuData; + u8 command; + u8 battler; + u8 state; + u8 battlerType; + u8 isCursorEnabled; + u8 msgIdx; + u16 stateAfterDelay; + u8 hasTwoOpponents; + u8 semiInvulnerable; + u8 substitute; + u8 delay; + u8 partyOrder[MAX_BATTLERS][MAX_PARTY_SIZE]; + u8 embargoTurns[MAX_BATTLERS]; +} BagMenuData; + +void BattleDisplay_InitTaskShowBagMenu(BattleSystem *battleSys, BattlerData *battlerData, BagMenuMessage *message) { - UnkStruct_ov16_0225D794 *v0; - int i, j; + BagMenuData *bagMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BagMenuData)); - v0 = (UnkStruct_ov16_0225D794 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D794)); + bagMenuData->partyMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyMenuData)); + bagMenuData->partyMenuData->battlePartyCtx = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); + bagMenuData->partyMenuData->battlePartyCtx->party = Party_New(HEAP_ID_BATTLE); + bagMenuData->state = 0; + bagMenuData->battleSys = battleSys; + bagMenuData->command = message->command; + bagMenuData->battler = battlerData->battler; + bagMenuData->battlerType = battlerData->battlerType; + bagMenuData->hasTwoOpponents = message->hasTwoOpponents; + bagMenuData->semiInvulnerable = message->semiInvulnerable; + bagMenuData->substitute = message->substitute; - v0->unk_08 = (UnkStruct_ov16_0225D840 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D840)); - v0->unk_08->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); - v0->unk_08->unk_04->party = Party_New(HEAP_ID_BATTLE); - v0->unk_0E = 0; - v0->battleSys = battleSys; - v0->unk_0C = message->command; - v0->unk_0D = battlerData->battler; - v0->unk_0F = battlerData->battlerType; - v0->unk_14 = message->unk_01; - v0->unk_15 = message->semiInvulnerable; - v0->unk_16 = message->substitute; + for (int i = 0; i < MAX_BATTLERS; i++) { + bagMenuData->partyMenuData->partySlots[i] = message->partySlots[i]; - for (i = 0; i < 4; i++) { - v0->unk_08->unk_0C[i] = message->partySlots[i]; - - for (j = 0; j < 6; j++) { - v0->unk_18[i][j] = message->partyOrder[i][j]; + for (int j = 0; j < MAX_PARTY_SIZE; j++) { + bagMenuData->partyOrder[i][j] = message->partyOrder[i][j]; } - v0->unk_30[i] = message->embargoTurns[i]; + bagMenuData->embargoTurns[i] = message->embargoTurns[i]; } - SysTask_Start(battlerData->taskFuncs.func_0C, v0, 0); + SysTask_Start(battlerData->taskFuncs.showBagMenu, bagMenuData, 0); } -void ov16_0225D840(BattleSystem *battleSys, BattlerData *battlerData, PartyMenuMessage *message) +void BattleDisplay_InitTaskShowPartyMenu(BattleSystem *battleSys, BattlerData *battlerData, PartyMenuMessage *message) { - UnkStruct_ov16_0225D840 *v0; - int i, j; + PartyMenuData *partyMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyMenuData)); - v0 = (UnkStruct_ov16_0225D840 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D840)); + partyMenuData->state = 0; + partyMenuData->battleSys = battleSys; + partyMenuData->command = message->command; + partyMenuData->battler = message->battler; + partyMenuData->listMode = message->listMode; + partyMenuData->canSwitch = message->canSwitch; + partyMenuData->doublesSelection = message->doublesSelection; + partyMenuData->selectedBattleBagItem = 0; + partyMenuData->battlersSwitchingMask = message->battlersSwitchingMask; - v0->unk_0A = 0; - v0->battleSys = battleSys; - v0->unk_08 = message->command; - v0->unk_09 = message->battler; - v0->unk_0B = message->listMode; - v0->unk_10 = message->canSwitch; - v0->unk_16 = message->doubles; - v0->unk_14 = 0; - v0->unk_18 = message->battlersSwitchingMask; + for (int i = 0; i < MAX_BATTLERS; i++) { + partyMenuData->partySlots[i] = message->selectedPartySlot[i]; - for (i = 0; i < 4; i++) { - v0->unk_0C[i] = message->selectedPartySlot[i]; - - for (j = 0; j < 6; j++) { - v0->unk_1C[i][j] = message->partyOrder[i][j]; + for (int j = 0; j < MAX_PARTY_SIZE; j++) { + partyMenuData->partyOrder[i][j] = message->partyOrder[i][j]; } } - SysTask_Start(battlerData->taskFuncs.func_10, v0, 0); + SysTask_Start(battlerData->taskFuncs.showPartyMenu, partyMenuData, 0); } -void ov16_0225D8AC(BattleSystem *battleSys, BattlerData *battlerData, YesNoMenuMessage *message) +typedef struct YesNoMenuData { + BattleSystem *battleSys; + void *healthbar; + int input; + u8 command; + u8 battler; + u8 state; + u8 yesNoType; + int promptMsg; + int nickname; + u16 move; + u16 msgIdx; +} YesNoMenuData; + +void BattleDisplay_InitTaskShowYesNoMenu(BattleSystem *battleSys, BattlerData *battlerData, YesNoMenuMessage *message) { - UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D8AC)); + YesNoMenuData *yesNoMenuData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(YesNoMenuData)); - v0->unk_0E = 0; - v0->battleSys = battleSys; - v0->unk_0C = message->command; - v0->unk_0D = battlerData->battler; - v0->unk_04 = &battlerData->healthbar; - v0->unk_10 = message->promptMsg; - v0->unk_0F = message->yesnoType; - v0->unk_18 = message->move; - v0->unk_14 = message->nickname; + yesNoMenuData->state = 0; + yesNoMenuData->battleSys = battleSys; + yesNoMenuData->command = message->command; + yesNoMenuData->battler = battlerData->battler; + yesNoMenuData->healthbar = &battlerData->healthbar; + yesNoMenuData->promptMsg = message->promptMsg; + yesNoMenuData->yesNoType = message->yesNoType; + yesNoMenuData->move = message->move; + yesNoMenuData->nickname = message->nickname; - SysTask_Start(battlerData->taskFuncs.func_14, v0, 0); + SysTask_Start(battlerData->taskFuncs.showYesNoMenu, yesNoMenuData, 0); } typedef struct BattleMessageWaitTask { @@ -785,80 +970,102 @@ typedef struct BattleMessageWaitTask { u8 msgIdx; } BattleMessageWaitTask; -void ov16_0225D8F0(BattleSystem *battleSys, BattlerData *battlerData, AttackMsgMessage *message) +void BattleDisplay_PrintAttackMessage(BattleSystem *battleSys, BattlerData *battlerData, AttackMsgMessage *message) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader = BattleSystem_GetAttackMessageLoader(battleSys); + BattleMessage battleMsg; - v1 = BattleSystem_GetAttackMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = message->command; - v0->battler = battlerData->battler; + waitTask->battleSys = battleSys; + waitTask->command = message->command; + waitTask->battler = battlerData->battler; - v2.id = 0 + message->move * 3; - v2.tags = 2; - v2.params[0] = battlerData->battler | (message->partySlot << 8); + battleMsg.id = message->move * 3; + battleMsg.tags = TAG_NICKNAME; + battleMsg.params[0] = battlerData->battler | (message->partySlot << 8); - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } void BattleDisplay_PrintMessage(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg) { MessageLoader *msgLoader = BattleSystem_GetMessageLoader(battleSys); - BattleMessageWaitTask *taskData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + BattleMessageWaitTask *waitTask = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - taskData->battleSys = battleSys; - taskData->command = battlerData->data[0]; - taskData->battler = battlerData->battler; - taskData->msgIdx = BattleMessage_Print(battleSys, msgLoader, battleMsg, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = battlerData->data[0]; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, taskData, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225D9A8(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) +typedef struct SetMoveAnimationData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *monSprite; + BattleAnimSystem *battleAnimSys; + MoveAnimation moveAnim; + u8 command; + u8 battler; + u8 state; + u8 unk_6B; + u8 unk_6C; + u8 unused[3]; +} SetMoveAnimationData; + +void BattleDisplay_InitTaskSetMoveAnimation(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) { - UnkStruct_ov16_0225D9A8 *v0 = (UnkStruct_ov16_0225D9A8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D9A8)); + SetMoveAnimationData *setMoveAnimationData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(SetMoveAnimationData)); - v0->unk_6A = 0; - v0->battleSys = battleSys; - v0->battlerData = battlerData; - v0->unk_68 = battlerData->data[0]; - v0->unk_69 = battlerData->battler; - v0->unk_0C = BattleSystem_GetBattleAnimSystem(battleSys); - v0->unk_10 = *animation; - v0->unk_08 = battlerData->monSprite; + setMoveAnimationData->state = 0; + setMoveAnimationData->battleSys = battleSys; + setMoveAnimationData->battlerData = battlerData; + setMoveAnimationData->command = battlerData->data[0]; + setMoveAnimationData->battler = battlerData->battler; + setMoveAnimationData->battleAnimSys = BattleSystem_GetBattleAnimSystem(battleSys); + setMoveAnimationData->moveAnim = *animation; + setMoveAnimationData->monSprite = battlerData->monSprite; - if ((animation->unk_4C == 1) && (animation->unk_50 == 25)) { + if (animation->unk_4C == 1 && animation->unk_50 == 25) { battlerData->unk_19C = 1; } - if ((animation->unk_4C == 1) && (animation->unk_50 == 26)) { + if (animation->unk_4C == 1 && animation->unk_50 == 26) { battlerData->unk_19C = 0; } - ov16_022645B8(&v0->unk_6B, &v0->unk_6C, animation->unk_4C, animation->unk_50, animation->move); - SysTask_Start(ov16_022626C0, v0, 0); + ov16_022645B8(&setMoveAnimationData->unk_6B, &setMoveAnimationData->unk_6C, animation->unk_4C, animation->unk_50, animation->move); + SysTask_Start(Task_SetMoveAnimation, setMoveAnimationData, 0); } -void ov16_0225DA44(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct FlickerBattlerData { + BattleSystem *battleSys; + PokemonSprite *monSprite; + u8 battler; + u8 counter; + u8 delay; + u8 unused; +} FlickerBattlerData; + +void BattleDisplay_InitTaskFlickerBattler(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225DA44 *v0 = (UnkStruct_ov16_0225DA44 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DA44)); + FlickerBattlerData *flickerBattlerData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(FlickerBattlerData)); - v0->unk_09 = 0; - v0->battleSys = battleSys; - v0->unk_04 = battlerData->monSprite; - v0->unk_08 = battlerData->battler; - v0->unk_0A = 0; + flickerBattlerData->counter = 0; + flickerBattlerData->battleSys = battleSys; + flickerBattlerData->monSprite = battlerData->monSprite; + flickerBattlerData->battler = battlerData->battler; + flickerBattlerData->delay = 0; - SysTask_Start(ov16_0226292C, v0, 0); + SysTask_Start(Task_FlickerBattler, flickerBattlerData, 0); } -void ov16_0225DA74(BattleSystem *battleSys, BattlerData *battlerData, HPGaugeUpdateMessage *message) +void BattleDisplay_InitTaskUpdateHPGauge(BattleSystem *battleSys, BattlerData *battlerData, HPGaugeUpdateMessage *message) { Healthbar *healthbar; @@ -881,10 +1088,10 @@ void ov16_0225DA74(BattleSystem *battleSys, BattlerData *battlerData, HPGaugeUpd healthbar->damage = 0; } - healthbar->task_10 = SysTask_Start(ov16_02262988, healthbar, 1000); + healthbar->task_10 = SysTask_Start(Task_UpdateHPGauge, healthbar, 1000); } -void ov16_0225DB00(BattleSystem *battleSys, BattlerData *battlerData, ExpGaugeUpdateMessage *message) +void BattleDisplay_InitTaskUpdateExpGauge(BattleSystem *battleSys, BattlerData *battlerData, ExpGaugeUpdateMessage *message) { Healthbar *healthbar; @@ -901,104 +1108,134 @@ void ov16_0225DB00(BattleSystem *battleSys, BattlerData *battlerData, ExpGaugeUp healthbar->maxExp = message->expToNextLevel; healthbar->expReward = message->gainedExp - healthbar->curExp; - if (battlerData->battlerType == 0) { - healthbar->task_10 = SysTask_Start(ov16_022629DC, healthbar, 1000); + if (battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER) { + healthbar->task_10 = SysTask_Start(Task_UpdateExpGauge, healthbar, 1000); return; } else { BattleController_EmitClearCommand(healthbar->battleSys, healthbar->battler, healthbar->command); } } -void ov16_0225DB74(BattleSystem *battleSys, BattlerData *battlerData, FaintingSequenceMessage *message) +typedef struct FaintingSequenceData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *monSprite; + MoveAnimation moveAnim; + u8 command; + u8 battler; + u8 state; + u8 face; + u16 species; + u8 gender; + u8 form; + u32 personality; + u16 isSubstitute; + u16 isTransformed; +} FaintingSequenceData; + +void BattleDisplay_InitTaskPlayFaintingSequence(BattleSystem *battleSys, BattlerData *battlerData, FaintingSequenceMessage *message) { - UnkStruct_ov16_0225DB74 *v0; - int i; + FaintingSequenceData *faintingSequenceData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(FaintingSequenceData)); - v0 = (UnkStruct_ov16_0225DB74 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DB74)); - - if (battlerData->battlerType & 0x1) { - v0->unk_67 = 2; + if (battlerData->battlerType & BATTLER_THEM) { + faintingSequenceData->face = FACE_FRONT; } else { - v0->unk_67 = 0; + faintingSequenceData->face = FACE_BACK; } - v0->unk_66 = 0; - v0->battleSys = battleSys; - v0->battlerData = battlerData; - v0->unk_64 = message->command; - v0->unk_65 = battlerData->battler; - v0->unk_08 = battlerData->monSprite; - v0->unk_68 = message->species; - v0->unk_6A = message->gender; - v0->unk_6B = message->form; - v0->unk_6C = message->personality; - v0->unk_70 = message->notSubstitute; - v0->unk_72 = message->notTransformed; + faintingSequenceData->state = 0; + faintingSequenceData->battleSys = battleSys; + faintingSequenceData->battlerData = battlerData; + faintingSequenceData->command = message->command; + faintingSequenceData->battler = battlerData->battler; + faintingSequenceData->monSprite = battlerData->monSprite; + faintingSequenceData->species = message->species; + faintingSequenceData->gender = message->gender; + faintingSequenceData->form = message->form; + faintingSequenceData->personality = message->personality; + faintingSequenceData->isSubstitute = message->isSubstitute; + faintingSequenceData->isTransformed = message->isTransformed; - for (i = 0; i < 4; i++) { - v0->unk_0C.species[i] = message->monSpecies[i]; - v0->unk_0C.genders[i] = message->monGenders[i]; - v0->unk_0C.isShiny[i] = message->monShiny[i]; - v0->unk_0C.formNums[i] = message->monFormNums[i]; - v0->unk_0C.personalities[i] = message->monPersonalities[i]; + for (int i = 0; i < MAX_BATTLERS; i++) { + faintingSequenceData->moveAnim.species[i] = message->monSpecies[i]; + faintingSequenceData->moveAnim.genders[i] = message->monGenders[i]; + faintingSequenceData->moveAnim.isShiny[i] = message->monShiny[i]; + faintingSequenceData->moveAnim.formNums[i] = message->monFormNums[i]; + faintingSequenceData->moveAnim.personalities[i] = message->monPersonalities[i]; } - SysTask_Start(ov16_02262A9C, v0, 0); + SysTask_Start(Task_PlayFaintingSequence, faintingSequenceData, 0); } -void ov16_0225DC4C(BattleSystem *battleSys, BattlerData *battlerData, PlaySoundMessage *message) +void BattleDisplay_PlaySound(BattleSystem *battleSys, BattlerData *battlerData, PlaySoundMessage *message) { - int v0; + int pan; - if (battlerData->battlerType & 0x1) { - v0 = 117; + if (battlerData->battlerType & BATTLER_THEM) { + pan = BATTLE_SOUND_PAN_RIGHT; } else { - v0 = -117; + pan = BATTLE_SOUND_PAN_LEFT; } BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); - Sound_PlayPannedEffect(message->sdatID, v0); + Sound_PlayPannedEffect(message->sdatID, pan); } -void ov16_0225DC7C(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct FadeOutData { + BattleSystem *battleSys; + u8 command; + u8 battler; + u8 state; + u8 unused; +} FadeOutData; + +void BattleDisplay_InitTaskFadeOut(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225DC7C *v0 = (UnkStruct_ov16_0225DC7C *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DC7C)); + FadeOutData *fadeOutData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(FadeOutData)); - v0->unk_06 = 0; - v0->battleSys = battleSys; - v0->unk_04 = battlerData->data[0]; - v0->unk_05 = battlerData->battler; + fadeOutData->state = 0; + fadeOutData->battleSys = battleSys; + fadeOutData->command = battlerData->data[0]; + fadeOutData->battler = battlerData->battler; - SysTask_Start(ov16_02262D28, v0, 0); + SysTask_Start(Task_FadeOut, fadeOutData, 0); } -void ov16_0225DCB0(BattleSystem *battleSys, BattlerData *battlerData, ToggleVanishMessage *message) +typedef struct ToggleVanishData { + BattleSystem *battleSys; + BattlerData *battlerData; + MoveAnimation moveAnim; + u8 command; + u8 battler; + u8 state; + u8 toggleHide; + int isSubstitute; +} ToggleVanishData; + +void BattleDisplay_InitTaskToggleVanish(BattleSystem *battleSys, BattlerData *battlerData, ToggleVanishMessage *message) { - UnkStruct_ov16_0225DCB0 *v0; - int i; + ToggleVanishData *toggleVanishData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(ToggleVanishData)); - v0 = (UnkStruct_ov16_0225DCB0 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DCB0)); + toggleVanishData->battleSys = battleSys; + toggleVanishData->battlerData = battlerData; + toggleVanishData->command = message->command; + toggleVanishData->battler = battlerData->battler; + toggleVanishData->state = 0; + toggleVanishData->toggleHide = message->toggle; + toggleVanishData->isSubstitute = message->isSubstitute; - v0->battleSys = battleSys; - v0->battlerData = battlerData; - v0->unk_60 = message->command; - v0->unk_61 = battlerData->battler; - v0->unk_62 = 0; - v0->unk_63 = message->toggle; - v0->unk_64 = message->notSubstitute; - - for (i = 0; i < 4; i++) { - v0->unk_08.species[i] = message->species[i]; - v0->unk_08.genders[i] = message->gender[i]; - v0->unk_08.isShiny[i] = message->isShiny[i]; - v0->unk_08.formNums[i] = message->formNum[i]; - v0->unk_08.personalities[i] = message->personality[i]; + for (int i = 0; i < MAX_BATTLERS; i++) { + toggleVanishData->moveAnim.species[i] = message->species[i]; + toggleVanishData->moveAnim.genders[i] = message->gender[i]; + toggleVanishData->moveAnim.isShiny[i] = message->isShiny[i]; + toggleVanishData->moveAnim.formNums[i] = message->formNum[i]; + toggleVanishData->moveAnim.personalities[i] = message->personality[i]; } - SysTask_Start(ov16_02262DC4, v0, 0); + SysTask_Start(Task_ToggleVanish, toggleVanishData, 0); } -void ov16_0225DD44(BattleSystem *battleSys, BattlerData *battlerData, SetStatusIconMessage *message) +void BattleDisplay_SetStatusIcon(BattleSystem *battleSys, BattlerData *battlerData, SetStatusIconMessage *message) { GF_ASSERT(battlerData->healthbar.mainSprite != NULL); @@ -1008,126 +1245,145 @@ void ov16_0225DD44(BattleSystem *battleSys, BattlerData *battlerData, SetStatusI BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); } -void ov16_0225DD7C(BattleSystem *battleSys, BattlerData *battlerData, TrainerMsgMessage *message) +void BattleDisplay_PrintTrainerMessage(BattleSystem *battleSys, BattlerData *battlerData, TrainerMsgMessage *message) { - BattleMessageWaitTask *v0; - int v1 = Battler_GetTrainerID(battleSys, battlerData->battler); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + BattleMessageWaitTask *waitTask; + int trainerID = Battler_GetTrainerID(battleSys, battlerData->battler); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = message->command; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_PrintTrainerMessage(battleSys, v1, battlerData->battler, message->msg, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = message->command; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_PrintTrainerMessage(battleSys, trainerID, battlerData->battler, message->msg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225DDD8(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message) +void BattleDisplay_PrintRecallMessage(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02263C1C(battleSys, battlerData, message, &v2); + ov16_02263C1C(battleSys, battlerData, message, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = message->command; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = message->command; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225DE30(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message) +void BattleDisplay_PrintSendOutMessage(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02263CF0(battleSys, battlerData, message, &v2); + ov16_02263CF0(battleSys, battlerData, message, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = message->command; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = message->command; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225DE88(BattleSystem *battleSys, BattlerData *battlerData) +void BattleDisplay_PrintBattleStartMessage(BattleSystem *battleSys, BattlerData *battlerData) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02263DD0(battleSys, battlerData, &v2); + ov16_02263DD0(battleSys, battlerData, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = 34; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = BATTLE_COMMAND_PRINT_BATTLE_START_MESSAGE; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225DEDC(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message) +void BattleDisplay_PrintLeadMonMessage(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02263E7C(battleSys, battlerData, message, &v2); + ov16_02263E7C(battleSys, battlerData, message, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = message->command; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = message->command; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225DF34(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct PlayLevelUpAnimationData { + BattleSystem *battleSys; + void *healthbar; + u8 command; + u8 battler; + u8 state; + u8 unk_0B; +} PlayLevelUpAnimationData; + +void BattleDisplay_InitTaskPlayLevelUpAnimation(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225DF34 *v0 = (UnkStruct_ov16_0225DF34 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DF34)); + PlayLevelUpAnimationData *playLevelUpAnimationData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PlayLevelUpAnimationData)); - v0->battleSys = battleSys; - v0->unk_08 = battlerData->data[0]; - v0->unk_09 = battlerData->battler; - v0->unk_0A = 0; - v0->unk_04 = &battlerData->healthbar; + playLevelUpAnimationData->battleSys = battleSys; + playLevelUpAnimationData->command = battlerData->data[0]; + playLevelUpAnimationData->battler = battlerData->battler; + playLevelUpAnimationData->state = 0; + playLevelUpAnimationData->healthbar = &battlerData->healthbar; - SysTask_Start(ov16_02262F30, v0, 0); + SysTask_Start(Task_PlayLevelUpAnimation, playLevelUpAnimationData, 0); } -void ov16_0225DF6C(BattleSystem *battleSys, BattlerData *battlerData, AlertMsgMessage *message) +typedef struct { + BattleSystem *battleSys; + u8 command; + u8 battler; + u8 msgIdx; + u8 state; + u8 delay; + u8 unused[3]; +} AlertMsgData; + +void BattleDisplay_SetAlertMessage(BattleSystem *battleSys, BattlerData *battlerData, AlertMsgMessage *message) { - UnkStruct_ov16_0225DF6C *v0; - MessageLoader *v1; + AlertMsgData *alertMsgData; + MessageLoader *msgLoader; - if (battlerData->bootState == 0x0) { - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (UnkStruct_ov16_0225DF6C *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DF6C)); + if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) { + msgLoader = BattleSystem_GetMessageLoader(battleSys); + alertMsgData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(AlertMsgData)); - v0->battleSys = battleSys; - v0->unk_04 = message->command; - v0->unk_05 = battlerData->battler; - v0->unk_07 = 0; - v0->unk_06 = BattleMessage_Print(battleSys, v1, &message->msg, BattleSystem_GetTextSpeed(battleSys)); + alertMsgData->battleSys = battleSys; + alertMsgData->command = message->command; + alertMsgData->battler = battlerData->battler; + alertMsgData->state = 0; + alertMsgData->msgIdx = BattleMessage_Print(battleSys, msgLoader, &message->msg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(ov16_02262FC0, v0, 0); - } else if (battlerData->bootState == 0x1) { + SysTask_Start(Task_WaitForAlertMessagePrint, alertMsgData, 0); + } else if (battlerData->bootState == BATTLER_BOOT_STATE_AI) { ov16_022661B0(battleSys, battlerData->battler); BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); } else { @@ -1139,7 +1395,7 @@ void ov16_0225DF6C(BattleSystem *battleSys, BattlerData *battlerData, AlertMsgMe } } -void ov16_0225E008(BattleSystem *battleSys, BattlerData *battlerData, RefreshHPGaugeMessage *message) +void BattleDisplay_RefreshHPGauge(BattleSystem *battleSys, BattlerData *battlerData, RefreshHPGaugeMessage *message) { Healthbar *healthbar = &battlerData->healthbar; @@ -1165,34 +1421,58 @@ void ov16_0225E008(BattleSystem *battleSys, BattlerData *battlerData, RefreshHPG BattleController_EmitClearCommand(healthbar->battleSys, healthbar->battler, healthbar->command); } -void ov16_0225E0BC(BattleSystem *battleSys, BattlerData *battlerData, ForgetMoveMessage *message) +typedef struct ForgetMoveData { + BattleSystem *battleSys; + BattlePartyContext *battlePartyCtx; + u8 command; + u8 battler; + u8 state; + u8 unused_0B; + u16 move; + u8 slot; + u8 unused_0F; +} ForgetMoveData; + +void BattleDisplay_InitTaskForgetMove(BattleSystem *battleSys, BattlerData *battlerData, ForgetMoveMessage *message) { - UnkStruct_ov16_0225E0BC *v0 = (UnkStruct_ov16_0225E0BC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E0BC)); + ForgetMoveData *forgetMoveData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(ForgetMoveData)); - v0->unk_0A = 0; - v0->battleSys = battleSys; - v0->unk_08 = message->command; - v0->unk_09 = battlerData->battler; - v0->unk_0C = message->move; - v0->unk_0E = message->slot; + forgetMoveData->state = 0; + forgetMoveData->battleSys = battleSys; + forgetMoveData->command = message->command; + forgetMoveData->battler = battlerData->battler; + forgetMoveData->move = message->move; + forgetMoveData->slot = message->slot; - SysTask_Start(ov16_022633A4, v0, 0); + SysTask_Start(Task_ForgetMove, forgetMoveData, 0); } -void ov16_0225E0F4(BattleSystem *battleSys, BattlerData *battlerData, MosaicSetMessage *message) +typedef struct SetMosaicData { + BattleSystem *battleSys; + PokemonSprite *monSprite; + u8 command; + u8 battler; + u8 state; + u8 intensity; + u8 counter; + u8 wait; + u16 unused; +} SetMosaicData; + +void BattleDisplay_InitTaskSetMosaic(BattleSystem *battleSys, BattlerData *battlerData, MosaicSetMessage *message) { - UnkStruct_ov16_0225E0F4 *v0 = (UnkStruct_ov16_0225E0F4 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E0F4)); + SetMosaicData *setMosaicData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(SetMosaicData)); - v0->unk_0A = 0; - v0->battleSys = battleSys; - v0->unk_04 = battlerData->monSprite; - v0->unk_08 = message->command; - v0->unk_09 = battlerData->battler; - v0->unk_0B = message->unk_01; - v0->unk_0C = 0; - v0->unk_0D = message->wait; + setMosaicData->state = 0; + setMosaicData->battleSys = battleSys; + setMosaicData->monSprite = battlerData->monSprite; + setMosaicData->command = message->command; + setMosaicData->battler = battlerData->battler; + setMosaicData->intensity = message->intensity; + setMosaicData->counter = 0; + setMosaicData->wait = message->wait; - SysTask_Start(ov16_022634DC, v0, 0); + SysTask_Start(Task_SetMosaic, setMosaicData, 0); } typedef struct PartyGaugeTask { @@ -1205,7 +1485,7 @@ typedef struct PartyGaugeTask { u8 midBattle; } PartyGaugeTask; -void BattleDisplay_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) +void BattleDisplay_InitTaskShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) { PartyGaugeTask *task = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyGaugeTask)); @@ -1220,10 +1500,10 @@ void BattleDisplay_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerDat } task->midBattle = FALSE; - SysTask_Start(ShowPartyGaugeTask, task, 0); + SysTask_Start(Task_ShowPartyGauge, task, 0); } -void BattleDisplay_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) +void BattleDisplay_InitTaskHideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) { PartyGaugeTask *task = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyGaugeTask)); @@ -1234,10 +1514,10 @@ void BattleDisplay_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerDat task->battlerType = battlerData->battlerType; task->midBattle = FALSE; - SysTask_Start(HidePartyGaugeTask, task, 0); + SysTask_Start(Task_HidePartyGauge, task, 0); } -void BattleDisplay_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) +void BattleDisplay_InitTaskShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) { PartyGaugeTask *task = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyGaugeTask)); @@ -1252,10 +1532,10 @@ void BattleDisplay_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerD } task->midBattle = TRUE; - SysTask_Start(ShowPartyGaugeTask, task, 0); + SysTask_Start(Task_ShowPartyGauge, task, 0); } -void BattleDisplay_HidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) +void BattleDisplay_InitTaskHidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData, PartyGaugeData *partyGauge) { PartyGaugeTask *task = Heap_Alloc(HEAP_ID_BATTLE, sizeof(PartyGaugeTask)); @@ -1266,28 +1546,28 @@ void BattleDisplay_HidePartyGauge(BattleSystem *battleSys, BattlerData *battlerD task->battlerType = battlerData->battlerType; task->midBattle = TRUE; - SysTask_Start(HidePartyGaugeTask, task, 0); + SysTask_Start(Task_HidePartyGauge, task, 0); } -void ov16_0225E23C(BattleSystem *battleSys, BattlerData *battlerData) +void BattleDisplay_PrintLinkWaitMessage(BattleSystem *battleSys, BattlerData *battlerData) { - MessageLoader *v0; - BattleMessage v1; + MessageLoader *msgLoader; + BattleMessage battleMsg; - if (battlerData->bootState == 0x0) { - v0 = BattleSystem_GetMessageLoader(battleSys); + if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) { + msgLoader = BattleSystem_GetMessageLoader(battleSys); - v1.id = 923; - v1.tags = 0; + battleMsg.id = 923; + battleMsg.tags = TAG_NONE; - BattleMessage_Print(battleSys, v0, &v1, NULL); + BattleMessage_Print(battleSys, msgLoader, &battleMsg, NULL); BattleSystem_SetWaitDial(battleSys, Window_AddWaitDial(BattleSystem_GetWindow(battleSys, 0), 1)); } BattleController_EmitClearCommand(battleSys, battlerData->battler, 55); } -void ov16_0225E294(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) +void BattleDisplay_RestoreSprite(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) { UnkStruct_ov12_022380DC v0; @@ -1296,92 +1576,112 @@ void ov16_0225E294(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimat BattleController_EmitClearCommand(battleSys, battlerData->battler, animation->command); } -void ov16_0225E2C8(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct SpriteToOAMData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *monSprite; + u8 command; + u8 battler; + u8 state; + u8 unused[1]; +} SpriteToOAMData; + +void BattleDisplay_InitTaskSpriteToOAM(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225E2C8 *v0 = (UnkStruct_ov16_0225E2C8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E2C8)); + SpriteToOAMData *spriteToOAMData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(SpriteToOAMData)); - v0->unk_0E = 0; - v0->battleSys = battleSys; - v0->battlerData = battlerData; - v0->unk_0C = battlerData->data[0]; - v0->unk_0D = battlerData->battler; - v0->unk_08 = battlerData->monSprite; + spriteToOAMData->state = 0; + spriteToOAMData->battleSys = battleSys; + spriteToOAMData->battlerData = battlerData; + spriteToOAMData->command = battlerData->data[0]; + spriteToOAMData->battler = battlerData->battler; + spriteToOAMData->monSprite = battlerData->monSprite; - SysTask_Start(ov16_02263688, v0, 0); + SysTask_Start(Task_SpriteToOAM, spriteToOAMData, 0); } -void ov16_0225E300(BattleSystem *battleSys, BattlerData *battlerData) +typedef struct OAMToSpriteData { + BattleSystem *battleSys; + BattlerData *battlerData; + PokemonSprite *monSprite; + u8 command; + u8 battler; + u8 delay; + u8 unused[1]; +} OAMToSpriteData; + +void BattleDisplay_InitTaskOAMToSprite(BattleSystem *battleSys, BattlerData *battlerData) { - UnkStruct_ov16_0225E300 *v0 = (UnkStruct_ov16_0225E300 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E300)); + OAMToSpriteData *oamToSpriteData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(OAMToSpriteData)); - v0->unk_0E = 0; - v0->battleSys = battleSys; - v0->battlerData = battlerData; - v0->unk_0C = battlerData->data[0]; - v0->unk_0D = battlerData->battler; - v0->unk_08 = battlerData->monSprite; + oamToSpriteData->delay = 0; + oamToSpriteData->battleSys = battleSys; + oamToSpriteData->battlerData = battlerData; + oamToSpriteData->command = battlerData->data[0]; + oamToSpriteData->battler = battlerData->battler; + oamToSpriteData->monSprite = battlerData->monSprite; - SysTask_Start(ov16_022636D4, v0, 0); + SysTask_Start(Task_OAMToSprite, oamToSpriteData, 0); } -void ov16_0225E338(BattleSystem *battleSys, BattlerData *battlerData) +void BattleDisplay_PrintResultMessage(BattleSystem *battleSys, BattlerData *battlerData) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_022641B4(battleSys, battlerData, &v2); + ov16_022641B4(battleSys, battlerData, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = 59; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = BATTLE_COMMAND_PRINT_RESULT_MESSAGE; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225E38C(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message) +void BattleDisplay_PrintEscapeMessage(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02264270(battleSys, battlerData, message, &v2); + ov16_02264270(battleSys, battlerData, message, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = 60; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = BATTLE_COMMAND_PRINT_ESCAPE_MESSAGE; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225E3E0(BattleSystem *battleSys, BattlerData *battlerData) +void BattleDisplay_PrintForfeitMessage(BattleSystem *battleSys, BattlerData *battlerData) { - BattleMessageWaitTask *v0; - MessageLoader *v1; - BattleMessage v2; + BattleMessageWaitTask *waitTask; + MessageLoader *msgLoader; + BattleMessage battleMsg; - ov16_02264360(battleSys, battlerData, &v2); + ov16_02264360(battleSys, battlerData, &battleMsg); - v1 = BattleSystem_GetMessageLoader(battleSys); - v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); + msgLoader = BattleSystem_GetMessageLoader(battleSys); + waitTask = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); - v0->battleSys = battleSys; - v0->command = 61; - v0->battler = battlerData->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); + waitTask->battleSys = battleSys; + waitTask->command = BATTLE_COMMAND_PRINT_FORFEIT_MESSAGE; + waitTask->battler = battlerData->battler; + waitTask->msgIdx = BattleMessage_Print(battleSys, msgLoader, &battleMsg, BattleSystem_GetTextSpeed(battleSys)); - SysTask_Start(WaitForBattleMessagePrint, v0, 0); + SysTask_Start(Task_WaitForBattleMessagePrint, waitTask, 0); } -void ov16_0225E434(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) +void BattleDisplay_RefreshSprite(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimation *animation) { UnkStruct_ov12_022380DC v0; @@ -1390,157 +1690,157 @@ void ov16_0225E434(BattleSystem *battleSys, BattlerData *battlerData, MoveAnimat BattleController_EmitClearCommand(battleSys, battlerData->battler, animation->command); } -void ov16_0225E468(BattleSystem *battleSys, BattlerData *battlerData, MoveHitSoundMessage *message) +void BattleDisplay_FlyMoveHitSoundEffect(BattleSystem *battleSys, BattlerData *battlerData, MoveHitSoundMessage *message) { - int v0; + int pan; - if (battlerData->battlerType & 0x1) { - v0 = 117; + if (battlerData->battlerType & BATTLER_THEM) { + pan = BATTLE_SOUND_PAN_RIGHT; } else { - v0 = -117; + pan = BATTLE_SOUND_PAN_LEFT; } switch (message->effectiveness) { case 0: - Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_M, v0); + Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_M, pan); break; case 2: - Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_H, v0); + Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_H, pan); break; case 1: - Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_L, v0); + Sound_PlayPannedEffect(SEQ_SE_DP_KOUKA_L, pan); break; } BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); } -void ov16_0225E4C8(BattleSystem *battleSys, BattlerData *battlerData, MusicPlayMessage *message) +void BattleDisplay_PlayMusic(BattleSystem *battleSys, BattlerData *battlerData, MusicPlayMessage *message) { Sound_PlayBGM(message->bgmID); BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); } -static void ov16_0225E4E8(SysTask *param0, void *param1) +static void Task_SetEncounter(SysTask *task, void *data) { - UnkStruct_ov16_0225E4E8 *v0 = (UnkStruct_ov16_0225E4E8 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + MonEncounterData *monEncounterData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(monEncounterData->battleSys); s16 v2, v3; - switch (v0->unk_12) { + switch (monEncounterData->state) { case 0: - v0->unk_20 = 28; - v0->unk_12++; + monEncounterData->delay = 28; + monEncounterData->state++; case 1: - if (--v0->unk_20) { + if (--monEncounterData->delay) { break; } - v0->unk_12++; + monEncounterData->state++; case 2: - if (v0->unk_13 == 2) { - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); + if (monEncounterData->face == 2) { + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); - if ((v0->unk_1C == 1) || (v0->unk_1C == 3)) { + if (monEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY || monEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { if (v2 < (24 * 8)) { - ManagedSprite_OffsetPositionXY(v0->unk_0C->unk_00, 8, 0); + ManagedSprite_OffsetPositionXY(monEncounterData->unk_0C->unk_00, 8, 0); } else { - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 24 * 8, 8 * 11); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 24 * 8, 8 * 11); } } - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); - if (v0->unk_1C == 1) { - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v2); - } else if (v0->unk_1C == 3) { - v2 = PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER) - v2; + if (monEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) { + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, v2); + } else if (monEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { + v2 = PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER) - v2; v2 -= 24; - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_X_CENTER, -v2); - } else if (v0->unk_1C == 5) { - v2 = v2 - PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER); + PokemonSprite_AddAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, -v2); + } else if (monEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { + v2 = v2 - PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER); v2 -= 16; - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v2); + PokemonSprite_AddAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, v2); } - if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER) >= v0->unk_14) { - PokemonSprite_InitAnim(v0->unk_08, 1); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_IS_AFFINE, 0); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + if (PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER) >= monEncounterData->unk_14) { + PokemonSprite_InitAnim(monEncounterData->sprite, 1); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, monEncounterData->unk_14); + PokemonSprite_LoadAnim(monEncounterData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monEncounterData->battleSys), monEncounterData->sprite, monEncounterData->species, monEncounterData->face, 0, monEncounterData->battler); { u8 v4; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v4, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); + PokemonSprite_LoadCryDelay(monEncounterData->battlerData->narc, &v4, monEncounterData->species, monEncounterData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monEncounterData->battleSys, monEncounterData->battler), monEncounterData->cryMod, monEncounterData->species, monEncounterData->formNum, 117, 127, NULL, 5, v4); } - if ((v0->unk_1C == 1) || (v0->unk_1C == 3)) { - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 24 * 8, 8 * 11); + if ((monEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) || (monEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1)) { + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 24 * 8, 8 * 11); } - PokemonSprite_StartFade(v0->unk_08, 8, 0, 0, 0x0); - v0->unk_12++; + PokemonSprite_StartFade(monEncounterData->sprite, 8, 0, 0, 0x0); + monEncounterData->state++; } } else { - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); - if ((v0->unk_1C == 0) || (v0->unk_1C == 2)) { + if ((monEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || (monEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1)) { if (v2 > 64) { - ManagedSprite_OffsetPositionXY(v0->unk_0C->unk_00, -8, 0); + ManagedSprite_OffsetPositionXY(monEncounterData->unk_0C->unk_00, -8, 0); } else { - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 64, 128 + 8); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 64, 128 + 8); } } - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); - if (v0->unk_1C == 0) { - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v2); - } else if (v0->unk_1C == 2) { - v2 = v2 - PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER); + if (monEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) { + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, v2); + } else if (monEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { + v2 = v2 - PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER); v2 -= 24; - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v2); - } else if (v0->unk_1C == 4) { - v2 = PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER) - v2; + PokemonSprite_AddAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, v2); + } else if (monEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + v2 = PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER) - v2; v2 -= 16; - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_X_CENTER, -v2); + PokemonSprite_AddAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, -v2); } - if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER) <= v0->unk_14) { - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + if (PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER) <= monEncounterData->unk_14) { + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_X_CENTER, monEncounterData->unk_14); + PokemonSprite_LoadAnim(monEncounterData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monEncounterData->battleSys), monEncounterData->sprite, monEncounterData->species, monEncounterData->face, 0, monEncounterData->battler); { u8 v5; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v5, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, -117, 127, NULL, 5, v5); + PokemonSprite_LoadCryDelay(monEncounterData->battlerData->narc, &v5, monEncounterData->species, monEncounterData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monEncounterData->battleSys, monEncounterData->battler), monEncounterData->cryMod, monEncounterData->species, monEncounterData->formNum, -117, 127, NULL, 5, v5); } - if ((v0->unk_1C == 0) || (v0->unk_1C == 2)) { - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 64, 128 + 8); + if ((monEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || (monEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1)) { + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 64, 128 + 8); } - v0->unk_12++; + monEncounterData->state++; } } break; case 3: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { - if (v0->unk_28) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(monEncounterData->battleSys), monEncounterData->battler) == TRUE) && (PokemonSprite_IsAnimActive(monEncounterData->sprite) == 0)) { + if (monEncounterData->isShiny) { { MoveAnimation v6; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 11, v0->unk_11, v0->unk_11, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v6); + BattleController_SetMoveAnimation(monEncounterData->battleSys, NULL, &v6, 1, 11, monEncounterData->battler, monEncounterData->battler, NULL); + ov16_02264408(monEncounterData->battleSys, monEncounterData->battlerData, v1, &v6); } - v0->unk_12 = 4; + monEncounterData->state = 4; } else { - v0->unk_12 = 0xff; + monEncounterData->state = 0xff; } } break; @@ -1549,80 +1849,80 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_12 = 0xff; + monEncounterData->state = 0xff; } break; default: - Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_11, v0->unk_10); - Heap_Free(param1); - SysTask_Done(param0); + Sound_Set2PokemonCriesAllowed(FALSE); + BattleController_EmitClearCommand(monEncounterData->battleSys, monEncounterData->battler, monEncounterData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225E894(SysTask *param0, void *param1) +static void Task_SetGiratinaEncounter(SysTask *task, void *data) { - UnkStruct_ov16_0225E4E8 *v0 = (UnkStruct_ov16_0225E4E8 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + MonEncounterData *monEncounterData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(monEncounterData->battleSys); s16 v2, v3; - switch (v0->unk_12) { + switch (monEncounterData->state) { case 0: - v0->unk_20 = 28; - v0->unk_12++; + monEncounterData->delay = 28; + monEncounterData->state++; case 1: - if (--v0->unk_20) { + if (--monEncounterData->delay) { break; } - v0->unk_12++; + monEncounterData->state++; case 2: - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); - if ((v0->unk_1C == 1) || (v0->unk_1C == 3)) { + if ((monEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) || (monEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1)) { if (v2 < (24 * 8)) { - ManagedSprite_OffsetPositionXY(v0->unk_0C->unk_00, 8, 0); + ManagedSprite_OffsetPositionXY(monEncounterData->unk_0C->unk_00, 8, 0); } else { - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 24 * 8, 8 * 11); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 24 * 8, 8 * 11); } } - ManagedSprite_GetPositionXY(v0->unk_0C->unk_00, &v2, &v3); - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_Y_CENTER, 8 / 2); + ManagedSprite_GetPositionXY(monEncounterData->unk_0C->unk_00, &v2, &v3); + PokemonSprite_AddAttribute(monEncounterData->sprite, MON_SPRITE_Y_CENTER, 8 / 2); - if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_Y_CENTER) >= v0->unk_14) { - PokemonSprite_InitAnim(v0->unk_08, 1); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_IS_AFFINE, 0); - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_Y_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + if (PokemonSprite_GetAttribute(monEncounterData->sprite, MON_SPRITE_Y_CENTER) >= monEncounterData->unk_14) { + PokemonSprite_InitAnim(monEncounterData->sprite, 1); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + PokemonSprite_SetAttribute(monEncounterData->sprite, MON_SPRITE_Y_CENTER, monEncounterData->unk_14); + PokemonSprite_LoadAnim(monEncounterData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monEncounterData->battleSys), monEncounterData->sprite, monEncounterData->species, monEncounterData->face, 0, monEncounterData->battler); { u8 v4; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v4, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); + PokemonSprite_LoadCryDelay(monEncounterData->battlerData->narc, &v4, monEncounterData->species, monEncounterData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monEncounterData->battleSys, monEncounterData->battler), monEncounterData->cryMod, monEncounterData->species, monEncounterData->formNum, 117, 127, NULL, 5, v4); } - ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 24 * 8, 8 * 11); - PokemonSprite_StartFade(v0->unk_08, 8, 0, 0, 0x0); + ManagedSprite_SetPositionXY(monEncounterData->unk_0C->unk_00, 24 * 8, 8 * 11); + PokemonSprite_StartFade(monEncounterData->sprite, 8, 0, 0, 0x0); - v0->unk_12++; + monEncounterData->state++; } break; case 3: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { - if (v0->unk_28) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(monEncounterData->battleSys), monEncounterData->battler) == TRUE) && (PokemonSprite_IsAnimActive(monEncounterData->sprite) == 0)) { + if (monEncounterData->isShiny) { { MoveAnimation v5; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v5, 1, 11, v0->unk_11, v0->unk_11, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v5); + BattleController_SetMoveAnimation(monEncounterData->battleSys, NULL, &v5, 1, 11, monEncounterData->battler, monEncounterData->battler, NULL); + ov16_02264408(monEncounterData->battleSys, monEncounterData->battlerData, v1, &v5); } - v0->unk_12 = 4; + monEncounterData->state = 4; } else { - v0->unk_12 = 0xff; + monEncounterData->state = 0xff; } } break; @@ -1631,14 +1931,14 @@ static void ov16_0225E894(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_12 = 0xff; + monEncounterData->state = 0xff; } break; default: - Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_11, v0->unk_10); - Heap_Free(param1); - SysTask_Done(param0); + Sound_Set2PokemonCriesAllowed(FALSE); + BattleController_EmitClearCommand(monEncounterData->battleSys, monEncounterData->battler, monEncounterData->command); + Heap_Free(data); + SysTask_Done(task); break; } } @@ -1652,29 +1952,29 @@ const u8 Unk_ov16_0226F174[] = { 0x5 }; -static void ov16_0225EA80(SysTask *param0, void *param1) +static void Task_ShowEncounter(SysTask *task, void *data) { - UnkStruct_ov16_0225EA80 *v0 = (UnkStruct_ov16_0225EA80 *)param1; + MonShowData *monShowData = data; - switch (v0->unk_83) { + switch (monShowData->state) { case 0: - v0->unk_96 = 0; + monShowData->delay = 0; { - v0->unk_10 = NULL; + monShowData->unk_10 = NULL; - if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) { - if ((BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x20) == 0) { - if (v0->unk_82 == 2) { - v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); + if (BattleSystem_GetBattleType(monShowData->battleSys) & BATTLE_TYPE_2vs2) { + if ((BattleSystem_GetBattleStatusMask(monShowData->battleSys) & BATTLE_STATUS_RECORDED) == 0) { + if (monShowData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { + monShowData->unk_10 = ov12_02223764(monShowData->battleSys, HEAP_ID_BATTLE); } } } else { - if ((BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x20) == 0) { - if ((ov16_0223ED60(v0->battleSys) == 1) && (v0->unk_82 == 2)) { - v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); - } else if (v0->unk_82 == 0) { - v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); + if ((BattleSystem_GetBattleStatusMask(monShowData->battleSys) & BATTLE_STATUS_RECORDED) == 0) { + if ((ov16_0223ED60(monShowData->battleSys) == 1) && (monShowData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1)) { + monShowData->unk_10 = ov12_02223764(monShowData->battleSys, HEAP_ID_BATTLE); + } else if (monShowData->battlerType == BATTLER_TYPE_SOLO_PLAYER) { + monShowData->unk_10 = ov12_02223764(monShowData->battleSys, HEAP_ID_BATTLE); } else { (void)0; } @@ -1682,34 +1982,34 @@ static void ov16_0225EA80(SysTask *param0, void *param1) } } - v0->unk_83++; + monShowData->state++; break; case 1: { UnkStruct_ov12_02236030 v1 = { 0 }; - v1.unk_00 = v0->unk_82; - v1.unk_08 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_81, v0->unk_8C); - v0->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v1); + v1.unk_00 = monShowData->battlerType; + v1.unk_08 = BattleSystem_GetPartyPokemon(monShowData->battleSys, monShowData->battler, monShowData->selectedPartySlot); + monShowData->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v1); - ov12_02236320(v0->unk_08); + ov12_02236320(monShowData->unk_08); } - v0->unk_83++; + monShowData->state++; break; case 2: - if (ov12_02237890(v0->battlerData->ballRotation) != 0) { + if (ov12_02237890(monShowData->battlerData->ballRotation) != 0) { break; } - if (ov12_02236374(v0->unk_08) != 1) { + if (ov12_02236374(monShowData->unk_08) != 1) { break; } - if (ov12_02237810(v0->battlerData->ballRotation) == 1) { - if (v0->unk_82 == 4) { - v0->unk_96++; + if (ov12_02237810(monShowData->battlerData->ballRotation) == 1) { + if (monShowData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + monShowData->delay++; - if (v0->unk_96 >= 12) { - v0->unk_96 = 0; + if (monShowData->delay >= 12) { + monShowData->delay = 0; } else { break; } @@ -1719,313 +2019,313 @@ static void ov16_0225EA80(SysTask *param0, void *param1) PokemonSpriteManager *v2; SpriteAnimFrame v3[10]; - v2 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); - PokemonSprite_LoadAnimFrames(v0->battlerData->narc, &v3[0], v0->unk_86, v0->unk_82); - v0->battlerData->monSprite = ov16_02263B30(v0->battleSys, v2, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v3[0], NULL); + v2 = BattleSystem_GetPokemonSpriteManager(monShowData->battleSys); + PokemonSprite_LoadAnimFrames(monShowData->battlerData->narc, &v3[0], monShowData->species, monShowData->battlerType); + monShowData->battlerData->monSprite = ov16_02263B30(monShowData->battleSys, v2, &monShowData->spriteTemplate, Unk_ov12_0223B0A0[monShowData->battlerType][0], gEncounterCoords[monShowData->battlerType][1], gEncounterCoords[monShowData->battlerType][2], monShowData->yOffset, monShowData->height, monShowData->shadowXOffset, monShowData->shadowSize, monShowData->battler, &v3[0], NULL); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_HIDE, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_HIDE, 1); } - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 16, 0, Unk_ov16_0226F1AE[v0->unk_8E]); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_HIDE, 0); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 16, 0, sFadeColors[monShowData->capturedBall]); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_HIDE, 0); - ov12_022363B4(v0->unk_08); + ov12_022363B4(monShowData->unk_08); - if (v0->unk_84 == 2) { + if (monShowData->face == 2) { Sound_PlayPannedEffect(SEQ_SE_DP_BOWA2, 117); } else { Sound_PlayPannedEffect(SEQ_SE_DP_BOWA2, -117); } - if (v0->unk_10) { - ov12_02223770(v0->unk_10); - v0->unk_10 = NULL; + if (monShowData->unk_10) { + ov12_02223770(monShowData->unk_10); + monShowData->unk_10 = NULL; } - v0->unk_83++; + monShowData->state++; } break; case 3: - if (ov12_022377F8(v0->battlerData->ballRotation) != 1) { - v0->unk_83++; + if (ov12_022377F8(monShowData->battlerData->ballRotation) != 1) { + monShowData->state++; } case 4: - if ((PokemonSprite_GetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X) == 0x100) && (ov12_022363C4(v0->unk_08) == 0)) { - if (v0->unk_84 == 2) { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + if ((PokemonSprite_GetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X) == 0x100) && (ov12_022363C4(monShowData->unk_08) == 0)) { + if (monShowData->face == 2) { + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); { u8 v4; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v4, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v4); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v4, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, 117, 127, NULL, 5, v4); } } else { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); { u8 v5; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v5, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v5); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v5, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, -117, 127, NULL, 5, v5); } } - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->battlerData->monSprite, v0->unk_86, v0->unk_84, 0, v0->unk_81); - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 0, 0, Unk_ov16_0226F1AE[v0->unk_8E]); + PokemonSprite_LoadAnim(monShowData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battlerData->monSprite, monShowData->species, monShowData->face, 0, monShowData->battler); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 0, 0, sFadeColors[monShowData->capturedBall]); - v0->unk_83 = 5; - } else if (PokemonSprite_GetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X) >= 0x100) { - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x100); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x100); + monShowData->state = 5; + } else if (PokemonSprite_GetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X) >= 0x100) { + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x100); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x100); - if (v0->unk_84 == 2) { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + if (monShowData->face == 2) { + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); { u8 v6; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v6, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v6, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, 117, 127, NULL, 5, v6); } } else { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); { u8 v7; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v7, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v7, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, -117, 127, NULL, 5, v7); } } - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->battlerData->monSprite, v0->unk_86, v0->unk_84, 0, v0->unk_81); - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 0, 1, Unk_ov16_0226F1AE[v0->unk_8E]); + PokemonSprite_LoadAnim(monShowData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battlerData->monSprite, monShowData->species, monShowData->face, 0, monShowData->battler); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 0, 1, sFadeColors[monShowData->capturedBall]); - v0->unk_83 = 5; + monShowData->state = 5; } else { - PokemonSprite_AddAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x20); - PokemonSprite_AddAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x20); - PokemonSprite_CalcScaledYOffset(v0->battlerData->monSprite, v0->unk_90); + PokemonSprite_AddAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x20); + PokemonSprite_AddAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x20); + PokemonSprite_CalcScaledYOffset(monShowData->battlerData->monSprite, monShowData->height); } break; case 5: - if (ov12_022363C4(v0->unk_08) == 0) { - v0->unk_83 = 6; + if (ov12_022363C4(monShowData->unk_08) == 0) { + monShowData->state = 6; } break; case 6: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->battlerData->monSprite) == 0)) { - ov12_0223783C(v0->battlerData->ballRotation); - v0->battlerData->ballRotation = NULL; - ov12_02236428(v0->unk_08); + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battler) == TRUE) && (PokemonSprite_IsAnimActive(monShowData->battlerData->monSprite) == 0)) { + ov12_0223783C(monShowData->battlerData->ballRotation); + monShowData->battlerData->ballRotation = NULL; + ov12_02236428(monShowData->unk_08); - if (v0->unk_92) { + if (monShowData->isShiny) { { MoveAnimation v8; - v0->unk_24 = BattleAnimSystem_New(HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v8, 1, 11, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_24, &v8); + monShowData->battleAnimSys = BattleAnimSystem_New(HEAP_ID_BATTLE); + BattleController_SetMoveAnimation(monShowData->battleSys, NULL, &v8, 1, 11, monShowData->battler, monShowData->battler, NULL); + ov16_02264408(monShowData->battleSys, monShowData->battlerData, monShowData->battleAnimSys, &v8); } - v0->unk_83 = 7; + monShowData->state = 7; } else { - v0->unk_83 = 0xff; + monShowData->state = 0xff; } } break; case 7: - BattleAnimSystem_ExecuteScript(v0->unk_24); + BattleAnimSystem_ExecuteScript(monShowData->battleAnimSys); - if (BattleAnimSystem_IsMoveActive(v0->unk_24) == 0) { - BattleAnimSystem_FreeScriptData(v0->unk_24); - BattleAnimSystem_Delete(v0->unk_24); - v0->unk_83 = 0xff; + if (BattleAnimSystem_IsMoveActive(monShowData->battleAnimSys) == 0) { + BattleAnimSystem_FreeScriptData(monShowData->battleAnimSys); + BattleAnimSystem_Delete(monShowData->battleAnimSys); + monShowData->state = 0xff; } break; default: - Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_81, v0->unk_80); - Heap_Free(param1); - SysTask_Done(param0); + Sound_Set2PokemonCriesAllowed(FALSE); + BattleController_EmitClearCommand(monShowData->battleSys, monShowData->battler, monShowData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225F0C0(SysTask *param0, void *param1) +static void Task_ShowPokemon(SysTask *task, void *data) { - UnkStruct_ov16_0225EA80 *v0 = (UnkStruct_ov16_0225EA80 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + MonShowData *monShowData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(monShowData->battleSys); - switch (v0->unk_83) { + switch (monShowData->state) { case 0: { BallThrow v2; - v2.type = Unk_ov16_0226F174[v0->unk_82]; + v2.type = Unk_ov16_0226F174[monShowData->battlerType]; v2.heapID = HEAP_ID_BATTLE; - v2.target = v0->unk_81; - v2.ballID = v0->unk_8E; - v2.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); - v2.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); + v2.target = monShowData->battler; + v2.ballID = monShowData->capturedBall; + v2.cellActorSys = BattleSystem_GetSpriteSystem(monShowData->battleSys); + v2.paletteSys = BattleSystem_GetPaletteData(monShowData->battleSys); v2.bgPrio = 1; v2.surface = 0; - if (v0->unk_94 == 1) { + if (monShowData->unk_94 == 1) { v2.mode = 1; } else { v2.mode = 0; } - v0->unk_0C = ov12_02237728(&v2); + monShowData->ballRotation = ov12_02237728(&v2); } { PokemonSpriteManager *v3; SpriteAnimFrame v4[10]; - v3 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); - PokemonSprite_LoadAnimFrames(v0->battlerData->narc, &v4[0], v0->unk_86, v0->unk_82); - v0->battlerData->monSprite = ov16_02263B30(v0->battleSys, v3, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v4[0], NULL); + v3 = BattleSystem_GetPokemonSpriteManager(monShowData->battleSys); + PokemonSprite_LoadAnimFrames(monShowData->battlerData->narc, &v4[0], monShowData->species, monShowData->battlerType); + monShowData->battlerData->monSprite = ov16_02263B30(monShowData->battleSys, v3, &monShowData->spriteTemplate, Unk_ov12_0223B0A0[monShowData->battlerType][0], gEncounterCoords[monShowData->battlerType][1], gEncounterCoords[monShowData->battlerType][2], monShowData->yOffset, monShowData->height, monShowData->shadowXOffset, monShowData->shadowSize, monShowData->battler, &v4[0], NULL); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_HIDE, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_HIDE, 1); } { - v0->unk_10 = NULL; - v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); + monShowData->unk_10 = NULL; + monShowData->unk_10 = ov12_02223764(monShowData->battleSys, HEAP_ID_BATTLE); } - v0->unk_83++; + monShowData->state++; break; case 1: { UnkStruct_ov12_02236030 v5 = { 0 }; - v5.unk_00 = v0->unk_82; - v5.unk_08 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_81, v0->unk_8C); - v5.unk_04 = v0->unk_8E; + v5.unk_00 = monShowData->battlerType; + v5.unk_08 = BattleSystem_GetPartyPokemon(monShowData->battleSys, monShowData->battler, monShowData->selectedPartySlot); + v5.unk_04 = monShowData->capturedBall; - v0->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v5); - ov12_02236320(v0->unk_08); + monShowData->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v5); + ov12_02236320(monShowData->unk_08); } - v0->unk_83++; + monShowData->state++; break; case 2: - if ((ov12_02237890(v0->unk_0C) != 0) && (v0->unk_94 == 0)) { + if ((ov12_02237890(monShowData->ballRotation) != 0) && (monShowData->unk_94 == 0)) { break; } - if (ov12_02236374(v0->unk_08) != 1) { + if (ov12_02236374(monShowData->unk_08) != 1) { break; } - if (ov12_02237810(v0->unk_0C) == 1) { - if (v0->unk_10) { - ov12_02223770(v0->unk_10); + if (ov12_02237810(monShowData->ballRotation) == 1) { + if (monShowData->unk_10) { + ov12_02223770(monShowData->unk_10); } - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 16, 0, Unk_ov16_0226F1AE[v0->unk_8E]); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_HIDE, 0); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 16, 0, sFadeColors[monShowData->capturedBall]); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_HIDE, 0); - ov12_022363B4(v0->unk_08); + ov12_022363B4(monShowData->unk_08); - if (v0->unk_84 == 2) { + if (monShowData->face == 2) { Sound_PlayPannedEffect(SEQ_SE_DP_BOWA2, 117); } else { Sound_PlayPannedEffect(SEQ_SE_DP_BOWA2, -117); } - v0->unk_83++; + monShowData->state++; } break; case 3: - if (ov12_022377F8(v0->unk_0C) != 1) { - v0->unk_83++; + if (ov12_022377F8(monShowData->ballRotation) != 1) { + monShowData->state++; } case 4: - if ((PokemonSprite_GetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X) == 0x100) && (ov12_022363C4(v0->unk_08) == 0)) { - if (v0->unk_84 == 2) { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + if ((PokemonSprite_GetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X) == 0x100) && (ov12_022363C4(monShowData->unk_08) == 0)) { + if (monShowData->face == 2) { + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); { u8 v6; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v6, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v6, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, 117, 127, NULL, 5, v6); } } else { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); { u8 v7; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v7, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v7, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, -117, 127, NULL, 5, v7); } } - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->battlerData->monSprite, v0->unk_86, v0->unk_84, 0, v0->unk_81); - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 0, 0, Unk_ov16_0226F1AE[v0->unk_8E]); - v0->unk_83 = 5; - } else if (PokemonSprite_GetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X) >= 0x100) { - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x100); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x100); + PokemonSprite_LoadAnim(monShowData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battlerData->monSprite, monShowData->species, monShowData->face, 0, monShowData->battler); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 0, 0, sFadeColors[monShowData->capturedBall]); + monShowData->state = 5; + } else if (PokemonSprite_GetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X) >= 0x100) { + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x100); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x100); - if (v0->unk_84 == 2) { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); + if (monShowData->face == 2) { + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); + PokemonSprite_SetAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SHADOW_IS_AFFINE, 0); { u8 v8; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v8, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v8); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v8, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, 117, 127, NULL, 5, v8); } } else { - PokemonSprite_InitAnim(v0->battlerData->monSprite, 1); + PokemonSprite_InitAnim(monShowData->battlerData->monSprite, 1); { u8 v9; - PokemonSprite_LoadCryDelay(v0->battlerData->narc, &v9, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v9); + PokemonSprite_LoadCryDelay(monShowData->battlerData->narc, &v9, monShowData->species, monShowData->battlerType); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(monShowData->battleSys, monShowData->battler), monShowData->cryMod, monShowData->species, monShowData->formNum, -117, 127, NULL, 5, v9); } } - PokemonSprite_LoadAnim(v0->battlerData->narc, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->battlerData->monSprite, v0->unk_86, v0->unk_84, 0, v0->unk_81); - PokemonSprite_StartFade(v0->battlerData->monSprite, 16, 0, 1, Unk_ov16_0226F1AE[v0->unk_8E]); - v0->unk_83 = 5; + PokemonSprite_LoadAnim(monShowData->battlerData->narc, BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battlerData->monSprite, monShowData->species, monShowData->face, 0, monShowData->battler); + PokemonSprite_StartFade(monShowData->battlerData->monSprite, 16, 0, 1, sFadeColors[monShowData->capturedBall]); + monShowData->state = 5; } else { - PokemonSprite_AddAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x20); - PokemonSprite_AddAttribute(v0->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x20); - PokemonSprite_CalcScaledYOffset(v0->battlerData->monSprite, v0->unk_90); + PokemonSprite_AddAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_X, 0x20); + PokemonSprite_AddAttribute(monShowData->battlerData->monSprite, MON_SPRITE_SCALE_Y, 0x20); + PokemonSprite_CalcScaledYOffset(monShowData->battlerData->monSprite, monShowData->height); } break; case 5: - if (ov12_022363C4(v0->unk_08) == 0) { - v0->unk_83 = 6; + if (ov12_022363C4(monShowData->unk_08) == 0) { + monShowData->state = 6; } break; case 6: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->battlerData->monSprite) == 0)) { - ov12_0223783C(v0->unk_0C); - ov12_02236428(v0->unk_08); + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(monShowData->battleSys), monShowData->battler) == TRUE) && (PokemonSprite_IsAnimActive(monShowData->battlerData->monSprite) == 0)) { + ov12_0223783C(monShowData->ballRotation); + ov12_02236428(monShowData->unk_08); - if (v0->unk_92) { + if (monShowData->isShiny) { { MoveAnimation v10; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v10, 1, 11, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v10); + BattleController_SetMoveAnimation(monShowData->battleSys, NULL, &v10, 1, 11, monShowData->battler, monShowData->battler, NULL); + ov16_02264408(monShowData->battleSys, monShowData->battlerData, v1, &v10); } - v0->unk_83 = 7; + monShowData->state = 7; } else { - v0->unk_83 = 8; + monShowData->state = 8; } } break; @@ -2036,73 +2336,73 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_83++; + monShowData->state++; } break; case 8: - if (v0->unk_98) { + if (monShowData->isSubstitute) { { MoveAnimation v11; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v11, 1, 15, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v11); + BattleController_SetMoveAnimation(monShowData->battleSys, NULL, &v11, 1, 15, monShowData->battler, monShowData->battler, NULL); + ov16_02264408(monShowData->battleSys, monShowData->battlerData, v1, &v11); } - v0->unk_83++; + monShowData->state++; } else { - v0->unk_83 = 0xff; + monShowData->state = 0xff; } break; case 10: { UnkStruct_ov12_022380DC v12; MoveAnimation v13; - ov16_02264530(v0->battleSys, &v0->unk_28, &v12, v0->unk_81); + ov16_02264530(monShowData->battleSys, &monShowData->moveAnim, &v12, monShowData->battler); ov12_02238390(&v12, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 1, 16, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v13); + BattleController_SetMoveAnimation(monShowData->battleSys, NULL, &v13, 1, 16, monShowData->battler, monShowData->battler, NULL); + ov16_02264408(monShowData->battleSys, monShowData->battlerData, v1, &v13); - v0->battlerData->unk_19C = 1; + monShowData->battlerData->unk_19C = 1; } - v0->unk_83++; + monShowData->state++; break; default: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_81, v0->unk_80); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(monShowData->battleSys, monShowData->battler, monShowData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225F764(SysTask *param0, void *param1) +static void Task_ReturnPokemon(SysTask *task, void *data) { - UnkStruct_ov16_0225F764 *v0 = (UnkStruct_ov16_0225F764 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + MonReturnData *monReturnData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(monReturnData->battleSys); - switch (v0->unk_6B) { + switch (monReturnData->state) { case 0: - if (v0->unk_70) { + if (monReturnData->isSubstitute) { { MoveAnimation v2; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v2, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v2); + BattleController_SetMoveAnimation(monReturnData->battleSys, NULL, &v2, 1, 15, monReturnData->battler, monReturnData->battler, NULL); + ov16_02264408(monReturnData->battleSys, monReturnData->battlerData, v1, &v2); } - v0->unk_6B++; + monReturnData->state++; } else { - v0->unk_6B = 4; + monReturnData->state = 4; } break; case 2: { UnkStruct_ov12_022380DC v3; MoveAnimation v4; - ov16_02264530(v0->battleSys, &v0->unk_10, &v3, v0->unk_69); + ov16_02264530(monReturnData->battleSys, &monReturnData->moveAnim, &v3, monReturnData->battler); ov12_022382BC(&v3, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v4); - v0->battlerData->unk_19C = 0; + BattleController_SetMoveAnimation(monReturnData->battleSys, NULL, &v4, 1, 16, monReturnData->battler, monReturnData->battler, NULL); + ov16_02264408(monReturnData->battleSys, monReturnData->battlerData, v1, &v4); + monReturnData->battlerData->unk_19C = 0; } - v0->unk_6B++; + monReturnData->state++; break; case 1: case 3: @@ -2110,47 +2410,47 @@ static void ov16_0225F764(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_6B++; + monReturnData->state++; } break; case 4: - if (v0->unk_6A & 0x1) { + if (monReturnData->battlerType & 0x1) { { BallThrow v5; - v5.type = Unk_ov16_0226F174[v0->unk_6A]; + v5.type = Unk_ov16_0226F174[monReturnData->battlerType]; v5.heapID = HEAP_ID_BATTLE; v5.mode = 5; - v5.target = v0->unk_69; - v5.ballID = v0->unk_6E; - v5.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); - v5.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); + v5.target = monReturnData->battler; + v5.ballID = monReturnData->capturedBall; + v5.cellActorSys = BattleSystem_GetSpriteSystem(monReturnData->battleSys); + v5.paletteSys = BattleSystem_GetPaletteData(monReturnData->battleSys); v5.bgPrio = 1; v5.surface = 0; - v0->unk_0C = ov12_02237728(&v5); + monReturnData->ballRotation = ov12_02237728(&v5); } } else { { BallThrow v6; int v7[] = { 0, 1, 2, 3, 4, 5 }; - v6.type = v7[v0->unk_6A]; + v6.type = v7[monReturnData->battlerType]; v6.heapID = HEAP_ID_BATTLE; v6.mode = 5; - v6.target = v0->unk_69; - v6.ballID = v0->unk_6E; - v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); - v6.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); + v6.target = monReturnData->battler; + v6.ballID = monReturnData->capturedBall; + v6.cellActorSys = BattleSystem_GetSpriteSystem(monReturnData->battleSys); + v6.paletteSys = BattleSystem_GetPaletteData(monReturnData->battleSys); v6.bgPrio = 1; v6.surface = 0; - v0->unk_0C = ov12_02237728(&v6); + monReturnData->ballRotation = ov12_02237728(&v6); } } - v0->unk_6B = 5; - PokemonSprite_StartFade(v0->unk_08, 0, 16, 0, Unk_ov16_0226F1AE[v0->unk_6E]); + monReturnData->state = 5; + PokemonSprite_StartFade(monReturnData->monSprite, 0, 16, 0, sFadeColors[monReturnData->capturedBall]); - switch (v0->unk_6A) { + switch (monReturnData->battlerType) { case 0: case 2: case 4: @@ -2164,197 +2464,197 @@ static void ov16_0225F764(SysTask *param0, void *param1) } break; case 5: - if (PokemonSprite_IsFadeActive(v0->unk_08) == 0) { - v0->unk_6B++; + if (PokemonSprite_IsFadeActive(monReturnData->monSprite) == 0) { + monReturnData->state++; } break; case 6: - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_SCALE_X, -0x20); - PokemonSprite_AddAttribute(v0->unk_08, MON_SPRITE_SCALE_Y, -0x20); - PokemonSprite_CalcScaledYOffset(v0->unk_08, v0->unk_6C); + PokemonSprite_AddAttribute(monReturnData->monSprite, MON_SPRITE_SCALE_X, -0x20); + PokemonSprite_AddAttribute(monReturnData->monSprite, MON_SPRITE_SCALE_Y, -0x20); + PokemonSprite_CalcScaledYOffset(monReturnData->monSprite, monReturnData->yOffset); - if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_SCALE_X) <= 0x0) { - PokemonSprite_Delete(v0->unk_08); + if (PokemonSprite_GetAttribute(monReturnData->monSprite, MON_SPRITE_SCALE_X) <= 0x0) { + PokemonSprite_Delete(monReturnData->monSprite); - if (v0->unk_6A & 0x1) { - v0->unk_6B = 7; + if (monReturnData->battlerType & 0x1) { + monReturnData->state = 7; } else { - v0->unk_6B = 7; + monReturnData->state = 7; } } break; case 7: - if (ov12_022377F8(v0->unk_0C) == 0) { - ov12_0223783C(v0->unk_0C); - v0->unk_6B = 8; + if (ov12_022377F8(monReturnData->ballRotation) == 0) { + ov12_0223783C(monReturnData->ballRotation); + monReturnData->state = 8; } break; case 8: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_69, v0->unk_68); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(monReturnData->battleSys, monReturnData->battler, monReturnData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225FA00(SysTask *param0, void *param1) +static void Task_OpenCaptureBall(SysTask *task, void *data) { - UnkStruct_ov16_0225D1C4 *v0 = (UnkStruct_ov16_0225D1C4 *)param1; + OpenCaptureBallData *captureOpenBallData = data; - switch (v0->unk_0B) { + switch (captureOpenBallData->state) { case 0: - PokemonSprite_AddAttribute(v0->unk_04, MON_SPRITE_SCALE_X, -0x20); - PokemonSprite_AddAttribute(v0->unk_04, MON_SPRITE_SCALE_Y, -0x20); + PokemonSprite_AddAttribute(captureOpenBallData->monSprite, MON_SPRITE_SCALE_X, -0x20); + PokemonSprite_AddAttribute(captureOpenBallData->monSprite, MON_SPRITE_SCALE_Y, -0x20); - if (v0->unk_0C) { - v0->unk_0C--; - PokemonSprite_AddAttribute(v0->unk_04, MON_SPRITE_Y_CENTER, -1); + if (captureOpenBallData->yOffset) { + captureOpenBallData->yOffset--; + PokemonSprite_AddAttribute(captureOpenBallData->monSprite, MON_SPRITE_Y_CENTER, -1); } - if (PokemonSprite_GetAttribute(v0->unk_04, MON_SPRITE_SCALE_X) <= 0x0) { - PokemonSprite_Delete(v0->unk_04); - v0->unk_0B++; + if (PokemonSprite_GetAttribute(captureOpenBallData->monSprite, MON_SPRITE_SCALE_X) <= 0x0) { + PokemonSprite_Delete(captureOpenBallData->monSprite); + captureOpenBallData->state++; } break; case 1: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(captureOpenBallData->battleSys, captureOpenBallData->battler, captureOpenBallData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225FA70(SysTask *param0, void *param1) +static void Task_SetTrainerEncounter(SysTask *task, void *data) { - UnkStruct_ov16_02264650_1 *v0 = (UnkStruct_ov16_02264650_1 *)param1; + TrainerEncounterData *trainerEncounterData = data; s16 v1, v2, v3, v4; - u32 battleType = BattleSystem_GetBattleType(v0->battleSys); + u32 battleType = BattleSystem_GetBattleType(trainerEncounterData->battleSys); - if ((v0->unk_1C < 33) && (v0->unk_0E >= 2) && ((v0->unk_14 == 0) || (v0->unk_14 == 2))) { - Bg_SetOffset(BattleSystem_GetBgConfig(v0->battleSys), 3, 1, 4); - v0->unk_1C++; + if ((trainerEncounterData->unk_1C < 33) && (trainerEncounterData->state >= 2) && ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || (trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1))) { + Bg_SetOffset(BattleSystem_GetBgConfig(trainerEncounterData->battleSys), 3, 1, 4); + trainerEncounterData->unk_1C++; } - switch (v0->unk_0E) { + switch (trainerEncounterData->state) { case 0: - if (ManagedSprite_GetNumFrames(v0->unk_08) > 2) { - ManagedSprite_SetAnimationFrame(v0->unk_08, 0); - ManagedSprite_SetAnim(v0->unk_08, 2); + if (ManagedSprite_GetNumFrames(trainerEncounterData->managedSprite) > 2) { + ManagedSprite_SetAnimationFrame(trainerEncounterData->managedSprite, 0); + ManagedSprite_SetAnim(trainerEncounterData->managedSprite, 2); } - v0->unk_18 = 28; - v0->unk_0E = 1; + trainerEncounterData->delay = 28; + trainerEncounterData->state = 1; case 1: - if (--v0->unk_18) { + if (--trainerEncounterData->delay) { break; } - v0->unk_0E = 2; + trainerEncounterData->state = 2; case 2: - ManagedSprite_GetPositionXY(v0->unk_04->unk_00, &v1, &v2); - ManagedSprite_GetPositionXY(v0->unk_08, &v3, &v4); + ManagedSprite_GetPositionXY(trainerEncounterData->unk_04->unk_00, &v1, &v2); + ManagedSprite_GetPositionXY(trainerEncounterData->managedSprite, &v3, &v4); - if (v0->unk_0F == 2) { - if ((v0->unk_14 == 1) || (v0->unk_14 == 3)) { + if (trainerEncounterData->face == FACE_FRONT) { + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) || (trainerEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1)) { if (v1 < (24 * 8)) { - ManagedSprite_OffsetPositionXY(v0->unk_04->unk_00, 8, 0); + ManagedSprite_OffsetPositionXY(trainerEncounterData->unk_04->unk_00, 8, 0); } else { - ManagedSprite_SetPositionXY(v0->unk_04->unk_00, 24 * 8, 8 * 11); + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, 24 * 8, 8 * 11); } } - ManagedSprite_GetPositionXY(v0->unk_04->unk_00, &v1, &v2); + ManagedSprite_GetPositionXY(trainerEncounterData->unk_04->unk_00, &v1, &v2); - if ((v0->unk_14 == 1) || ((v0->unk_14 == 3) && ((battleType == BATTLE_TYPE_TRAINER_DOUBLES) || (battleType == BATTLE_TYPE_FRONTIER_DOUBLES) || (battleType == ((BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER) | BATTLE_TYPE_DOUBLES))))) { - ManagedSprite_SetPositionXY(v0->unk_08, v1, v4); - } else if (v0->unk_14 == 3) { + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) || ((trainerEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) && ((battleType == BATTLE_TYPE_TRAINER_DOUBLES) || (battleType == BATTLE_TYPE_FRONTIER_DOUBLES) || (battleType == ((BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER) | BATTLE_TYPE_DOUBLES))))) { + ManagedSprite_SetPositionXY(trainerEncounterData->managedSprite, v1, v4); + } else if (trainerEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { v1 = v3 - v1; v1 -= 24; - ManagedSprite_OffsetPositionXY(v0->unk_08, -v1, 0); - } else if (v0->unk_14 == 5) { + ManagedSprite_OffsetPositionXY(trainerEncounterData->managedSprite, -v1, 0); + } else if (trainerEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { v1 = v1 - v3; v1 -= 16; - ManagedSprite_OffsetPositionXY(v0->unk_08, v1, 0); + ManagedSprite_OffsetPositionXY(trainerEncounterData->managedSprite, v1, 0); } - ManagedSprite_GetPositionXY(v0->unk_08, &v3, &v4); + ManagedSprite_GetPositionXY(trainerEncounterData->managedSprite, &v3, &v4); - if (v3 >= v0->unk_10) { - ManagedSprite_SetPositionXY(v0->unk_08, v0->unk_10, v4); + if (v3 >= trainerEncounterData->unk_10) { + ManagedSprite_SetPositionXY(trainerEncounterData->managedSprite, trainerEncounterData->unk_10, v4); - if ((v0->unk_14 == 1) || (v0->unk_14 == 3)) { - ManagedSprite_SetPositionXY(v0->unk_04->unk_00, 24 * 8, 8 * 11); + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_ENEMY) || (trainerEncounterData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1)) { + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, 24 * 8, 8 * 11); } - if (ManagedSprite_GetNumFrames(v0->unk_08) > 1) { - ManagedSprite_SetAnimationFrame(v0->unk_08, 0); - ManagedSprite_SetAnim(v0->unk_08, 1); - v0->unk_12_0 = 0; - v0->unk_0E = 3; + if (ManagedSprite_GetNumFrames(trainerEncounterData->managedSprite) > 1) { + ManagedSprite_SetAnimationFrame(trainerEncounterData->managedSprite, 0); + ManagedSprite_SetAnim(trainerEncounterData->managedSprite, 1); + trainerEncounterData->unk_12_0 = 0; + trainerEncounterData->state = 3; } else { - v0->unk_0E = 4; + trainerEncounterData->state = 4; } } } else { - if ((v0->unk_14 == 0) || (v0->unk_14 == 2)) { + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || (trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1)) { if (v1 > 64) { - ManagedSprite_OffsetPositionXY(v0->unk_04->unk_00, -8, 0); + ManagedSprite_OffsetPositionXY(trainerEncounterData->unk_04->unk_00, -8, 0); } else { - ManagedSprite_SetPositionXY(v0->unk_04->unk_00, 64, 128 + 8); + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, 64, 128 + 8); } } - ManagedSprite_GetPositionXY(v0->unk_04->unk_00, &v1, &v2); + ManagedSprite_GetPositionXY(trainerEncounterData->unk_04->unk_00, &v1, &v2); - if ((v0->unk_14 == 0) || ((v0->unk_14 == 2) && ((battleType == BATTLE_TYPE_TRAINER_DOUBLES) || (battleType == BATTLE_TYPE_FRONTIER_DOUBLES) || (battleType == BATTLE_TYPE_TAG_DOUBLES) || (battleType == BATTLE_TYPE_LINK_DOUBLES)))) { - ManagedSprite_SetPositionXY(v0->unk_08, v1, v4); - } else if (v0->unk_14 == 2) { + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || ((trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) && ((battleType == BATTLE_TYPE_TRAINER_DOUBLES) || (battleType == BATTLE_TYPE_FRONTIER_DOUBLES) || (battleType == BATTLE_TYPE_TAG_DOUBLES) || (battleType == BATTLE_TYPE_LINK_DOUBLES)))) { + ManagedSprite_SetPositionXY(trainerEncounterData->managedSprite, v1, v4); + } else if (trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { v1 = v1 - v3; v1 -= 24; - ManagedSprite_OffsetPositionXY(v0->unk_08, v1, 0); - } else if (v0->unk_14 == 4) { + ManagedSprite_OffsetPositionXY(trainerEncounterData->managedSprite, v1, 0); + } else if (trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { v1 = v3 - v1; v1 -= 16; - ManagedSprite_OffsetPositionXY(v0->unk_08, -v1, 0); + ManagedSprite_OffsetPositionXY(trainerEncounterData->managedSprite, -v1, 0); } - ManagedSprite_GetPositionXY(v0->unk_08, &v3, &v4); + ManagedSprite_GetPositionXY(trainerEncounterData->managedSprite, &v3, &v4); - if (v3 <= v0->unk_10) { - ManagedSprite_SetPositionXY(v0->unk_08, v0->unk_10, v4); + if (v3 <= trainerEncounterData->unk_10) { + ManagedSprite_SetPositionXY(trainerEncounterData->managedSprite, trainerEncounterData->unk_10, v4); - if ((v0->unk_14 == 0) || (v0->unk_14 == 2)) { - ManagedSprite_SetPositionXY(v0->unk_04->unk_00, 64, 128 + 8); + if ((trainerEncounterData->battlerType == BATTLER_TYPE_SOLO_PLAYER) || (trainerEncounterData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1)) { + ManagedSprite_SetPositionXY(trainerEncounterData->unk_04->unk_00, 64, 128 + 8); } - v0->unk_0E = 4; + trainerEncounterData->state = 4; } } break; case 3: - if (ManagedSprite_IsAnimated(v0->unk_08) == 1) { - if (ov16_02264650(v0, v0->unk_08) == 0) { + if (ManagedSprite_IsAnimated(trainerEncounterData->managedSprite) == 1) { + if (ov16_02264650(trainerEncounterData, trainerEncounterData->managedSprite) == 0) { break; } } - v0->unk_0E = 4; + trainerEncounterData->state = 4; case 4: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(trainerEncounterData->battleSys, trainerEncounterData->battler, trainerEncounterData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_0225FD5C(SysTask *param0, void *param1) +static void Task_ThrowTrainerBall(SysTask *task, void *data) { - UnkStruct_ov16_0225D360 *v0 = (UnkStruct_ov16_0225D360 *)param1; + TrainerThrowBallData *trainerThrowBallData = data; s16 v1, v2; int v3; u32 battleType; @@ -2440,76 +2740,76 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) }, }; - battleType = BattleSystem_GetBattleType(v0->battleSys); + battleType = BattleSystem_GetBattleType(trainerThrowBallData->battleSys); - switch (v0->unk_0A) { + switch (trainerThrowBallData->state) { case 0: - if (v0->unk_10 == 0) { - v0->unk_0A = 1; + if (trainerThrowBallData->ballTypeIn == 0) { + trainerThrowBallData->state = 1; } else { { BallThrow v6; - switch (v0->unk_10) { + switch (trainerThrowBallData->ballTypeIn) { default: case 1: v6.type = 15; - v0->unk_18 = 3; + trainerThrowBallData->unk_18 = 3; v6.ballID = 5; break; case 2: v6.type = 12; - v0->unk_18 = 0; + trainerThrowBallData->unk_18 = 0; v6.ballID = (0xFF + 18); break; case 3: v6.type = 13; - v0->unk_18 = 0; + trainerThrowBallData->unk_18 = 0; v6.ballID = (0xFF + 19); break; case 4: v6.type = 15; - v0->unk_18 = 3; + trainerThrowBallData->unk_18 = 3; v6.ballID = (0xFF + 17); break; } v6.heapID = HEAP_ID_BATTLE; v6.mode = 4; - v6.target = v0->unk_09; - v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); - v6.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); + v6.target = trainerThrowBallData->battler; + v6.cellActorSys = BattleSystem_GetSpriteSystem(trainerThrowBallData->battleSys); + v6.paletteSys = BattleSystem_GetPaletteData(trainerThrowBallData->battleSys); v6.surface = 0; - v6.battleSys = v0->battleSys; + v6.battleSys = trainerThrowBallData->battleSys; - v0->battlerData->ballRotation = ov12_02237728(&v6); + trainerThrowBallData->battlerData->ballRotation = ov12_02237728(&v6); - ov12_02237E34(v0->battlerData->ballRotation, 100); - ov12_02237E40(v0->battlerData->ballRotation, 2); - ov12_02237E30(v0->battlerData->ballRotation, 0); + ov12_02237E34(trainerThrowBallData->battlerData->ballRotation, 100); + ov12_02237E40(trainerThrowBallData->battlerData->ballRotation, 2); + ov12_02237E30(trainerThrowBallData->battlerData->ballRotation, 0); - ManagedSprite_SetAnimationFrame(v0->battlerData->managedSprite, 0); - ManagedSprite_SetAnim(v0->battlerData->managedSprite, 1); - ManagedSprite_SetAnimateFlag(v0->battlerData->managedSprite, 1); + ManagedSprite_SetAnimationFrame(trainerThrowBallData->battlerData->managedSprite, 0); + ManagedSprite_SetAnim(trainerThrowBallData->battlerData->managedSprite, 1); + ManagedSprite_SetAnimateFlag(trainerThrowBallData->battlerData->managedSprite, 1); - v0->unk_0A = 3; + trainerThrowBallData->state = 3; } } break; case 1: - if (v0->unk_0B == 2) { - ManagedSprite_OffsetPositionXY(v0->battlerData->managedSprite, 5, 0); - ManagedSprite_GetPositionXY(v0->battlerData->managedSprite, &v1, &v2); + if (trainerThrowBallData->face == 2) { + ManagedSprite_OffsetPositionXY(trainerThrowBallData->battlerData->managedSprite, 5, 0); + ManagedSprite_GetPositionXY(trainerThrowBallData->battlerData->managedSprite, &v1, &v2); - if ((v1 >= (256 - 48) - 48) && (ov12_02237890(v0->battlerData->ballRotation) != 0)) { - ov12_02237E0C(v0->battlerData->ballRotation, 1); - ov12_0223786C(v0->battlerData->ballRotation, 0); + if ((v1 >= (256 - 48) - 48) && (ov12_02237890(trainerThrowBallData->battlerData->ballRotation) != 0)) { + ov12_02237E0C(trainerThrowBallData->battlerData->ballRotation, 1); + ov12_0223786C(trainerThrowBallData->battlerData->ballRotation, 0); if ((battleType & BATTLE_TYPE_DOUBLES) && ((battleType & BATTLE_TYPE_2vs2) == 0)) { { BattlerData *battlerData; - battlerData = BattleSystem_GetBattlerData(v0->battleSys, BattleSystem_GetPartner(v0->battleSys, v0->unk_09)); + battlerData = BattleSystem_GetBattlerData(trainerThrowBallData->battleSys, BattleSystem_GetPartner(trainerThrowBallData->battleSys, trainerThrowBallData->battler)); ov12_02237E0C(battlerData->ballRotation, 1); ov12_0223786C(battlerData->ballRotation, 0); @@ -2520,46 +2820,46 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { SpriteManager *v8; - v8 = BattleSystem_GetSpriteManager(v0->battleSys); - Sprite_DeleteAndFreeResources(v0->battlerData->managedSprite); - v0->battlerData->managedSprite = NULL; + v8 = BattleSystem_GetSpriteManager(trainerThrowBallData->battleSys); + Sprite_DeleteAndFreeResources(trainerThrowBallData->battlerData->managedSprite); + trainerThrowBallData->battlerData->managedSprite = NULL; - SpriteManager_UnloadCharObjById(v8, 20015 + v0->battlerData->battlerType); - SpriteManager_UnloadPlttObjById(v8, 20010 + v0->battlerData->battlerType); - SpriteManager_UnloadCellObjById(v8, 20007 + v0->battlerData->battlerType); - SpriteManager_UnloadAnimObjById(v8, 20007 + v0->battlerData->battlerType); + SpriteManager_UnloadCharObjById(v8, 20015 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadPlttObjById(v8, 20010 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadCellObjById(v8, 20007 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadAnimObjById(v8, 20007 + trainerThrowBallData->battlerData->battlerType); } - v0->unk_0A = 6; + trainerThrowBallData->state = 6; } } else { - ManagedSprite_SetAnimationFrame(v0->battlerData->managedSprite, 0); - ManagedSprite_SetAnim(v0->battlerData->managedSprite, 1); - ManagedSprite_SetAnimateFlag(v0->battlerData->managedSprite, 1); - v0->unk_0A = 2; + ManagedSprite_SetAnimationFrame(trainerThrowBallData->battlerData->managedSprite, 0); + ManagedSprite_SetAnim(trainerThrowBallData->battlerData->managedSprite, 1); + ManagedSprite_SetAnimateFlag(trainerThrowBallData->battlerData->managedSprite, 1); + trainerThrowBallData->state = 2; } break; case 2: - ManagedSprite_OffsetPositionXY(v0->battlerData->managedSprite, -5, 0); - ManagedSprite_GetPositionXY(v0->battlerData->managedSprite, &v1, &v2); + ManagedSprite_OffsetPositionXY(trainerThrowBallData->battlerData->managedSprite, -5, 0); + ManagedSprite_GetPositionXY(trainerThrowBallData->battlerData->managedSprite, &v1, &v2); - if (v0->battlerData->ballRotation) { - v3 = ManagedSprite_GetAnimationFrame(v0->battlerData->managedSprite); + if (trainerThrowBallData->battlerData->ballRotation) { + v3 = ManagedSprite_GetAnimationFrame(trainerThrowBallData->battlerData->managedSprite); - if (v5[v0->unk_0C][v3][0] != 0x7fff) { - ov12_02237E0C(v0->battlerData->ballRotation, 1); - ov12_02237E18(v0->battlerData->ballRotation, v1 + v5[v0->unk_0C][v3][0], v2 + v5[v0->unk_0C][v3][1]); + if (v5[trainerThrowBallData->unk_0C][v3][0] != 0x7fff) { + ov12_02237E0C(trainerThrowBallData->battlerData->ballRotation, 1); + ov12_02237E18(trainerThrowBallData->battlerData->ballRotation, v1 + v5[trainerThrowBallData->unk_0C][v3][0], v2 + v5[trainerThrowBallData->unk_0C][v3][1]); - if ((v3 == 3) && (ov12_02237890(v0->battlerData->ballRotation) != 0)) { - ov12_0223786C(v0->battlerData->ballRotation, 0); - ov12_02237E30(v0->battlerData->ballRotation, 1); + if ((v3 == 3) && (ov12_02237890(trainerThrowBallData->battlerData->ballRotation) != 0)) { + ov12_0223786C(trainerThrowBallData->battlerData->ballRotation, 0); + ov12_02237E30(trainerThrowBallData->battlerData->ballRotation, 1); if ((battleType & BATTLE_TYPE_DOUBLES) && ((battleType & BATTLE_TYPE_2vs2) == 0)) { { BattlerData *battlerData; - battlerData = BattleSystem_GetBattlerData(v0->battleSys, BattleSystem_GetPartner(v0->battleSys, v0->unk_09)); + battlerData = BattleSystem_GetBattlerData(trainerThrowBallData->battleSys, BattleSystem_GetPartner(trainerThrowBallData->battleSys, trainerThrowBallData->battler)); - ov12_02237E18(battlerData->ballRotation, v1 + v5[v0->unk_0C][v3][0], v2 + v5[v0->unk_0C][v3][1]); + ov12_02237E18(battlerData->ballRotation, v1 + v5[trainerThrowBallData->unk_0C][v3][0], v2 + v5[trainerThrowBallData->unk_0C][v3][1]); ov12_02237E0C(battlerData->ballRotation, 1); ov12_0223786C(battlerData->ballRotation, 0); ov12_02237E30(battlerData->ballRotation, 1); @@ -2573,36 +2873,36 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { SpriteManager *v10; - v10 = BattleSystem_GetSpriteManager(v0->battleSys); + v10 = BattleSystem_GetSpriteManager(trainerThrowBallData->battleSys); - Sprite_DeleteAndFreeResources(v0->battlerData->managedSprite); - v0->battlerData->managedSprite = NULL; + Sprite_DeleteAndFreeResources(trainerThrowBallData->battlerData->managedSprite); + trainerThrowBallData->battlerData->managedSprite = NULL; - SpriteManager_UnloadCharObjById(v10, 20015 + v0->battlerData->battlerType); - SpriteManager_UnloadPlttObjById(v10, 20010 + v0->battlerData->battlerType); - SpriteManager_UnloadCellObjById(v10, 20007 + v0->battlerData->battlerType); - SpriteManager_UnloadAnimObjById(v10, 20007 + v0->battlerData->battlerType); + SpriteManager_UnloadCharObjById(v10, 20015 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadPlttObjById(v10, 20010 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadCellObjById(v10, 20007 + trainerThrowBallData->battlerData->battlerType); + SpriteManager_UnloadAnimObjById(v10, 20007 + trainerThrowBallData->battlerData->battlerType); } - v0->unk_0A = 6; + trainerThrowBallData->state = 6; } break; case 3: - ManagedSprite_GetPositionXY(v0->battlerData->managedSprite, &v1, &v2); - v3 = ManagedSprite_GetAnimationFrame(v0->battlerData->managedSprite); + ManagedSprite_GetPositionXY(trainerThrowBallData->battlerData->managedSprite, &v1, &v2); + v3 = ManagedSprite_GetAnimationFrame(trainerThrowBallData->battlerData->managedSprite); if (v3 == 4) { - v0->unk_14 = 8; - v0->unk_0A = 4; - } else if (v0->battlerData->ballRotation != NULL) { - if (v5[v0->unk_0C][v3][0] != 0x7fff) { - ov12_02237E18(v0->battlerData->ballRotation, v1 + v5[v0->unk_0C][v3][0], v2 + v5[v0->unk_0C][v3][1]); + trainerThrowBallData->delay = 8; + trainerThrowBallData->state = 4; + } else if (trainerThrowBallData->battlerData->ballRotation != NULL) { + if (v5[trainerThrowBallData->unk_0C][v3][0] != 0x7fff) { + ov12_02237E18(trainerThrowBallData->battlerData->ballRotation, v1 + v5[trainerThrowBallData->unk_0C][v3][0], v2 + v5[trainerThrowBallData->unk_0C][v3][1]); - if ((v3 == 3) && (ov12_02237890(v0->battlerData->ballRotation) != v0->unk_18)) { - ov12_0223786C(v0->battlerData->ballRotation, v0->unk_18); - ov12_02237E40(v0->battlerData->ballRotation, 1); - ov12_02237E30(v0->battlerData->ballRotation, 1); + if ((v3 == 3) && (ov12_02237890(trainerThrowBallData->battlerData->ballRotation) != trainerThrowBallData->unk_18)) { + ov12_0223786C(trainerThrowBallData->battlerData->ballRotation, trainerThrowBallData->unk_18); + ov12_02237E40(trainerThrowBallData->battlerData->ballRotation, 1); + ov12_02237E30(trainerThrowBallData->battlerData->ballRotation, 1); - if (v0->unk_18 != 3) { + if (trainerThrowBallData->unk_18 != 3) { Sound_PlayEffect(SEQ_SE_DP_NAGERU); } } @@ -2610,106 +2910,106 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) } break; case 4: - if (--v0->unk_14 == 0) { - if (v0->unk_18 == 3) { - v0->unk_0A = 6; + if (--trainerThrowBallData->delay == 0) { + if (trainerThrowBallData->unk_18 == 3) { + trainerThrowBallData->state = 6; } else { - v0->unk_0A = 5; + trainerThrowBallData->state = 5; } } break; case 5: - if (ov12_022377F8(v0->battlerData->ballRotation) == 1) { + if (ov12_022377F8(trainerThrowBallData->battlerData->ballRotation) == 1) { break; } - ov12_0223783C(v0->battlerData->ballRotation); + ov12_0223783C(trainerThrowBallData->battlerData->ballRotation); - v0->battlerData->ballRotation = NULL; - v0->unk_0A = 6; + trainerThrowBallData->battlerData->ballRotation = NULL; + trainerThrowBallData->state = 6; break; case 6: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(trainerThrowBallData->battleSys, trainerThrowBallData->battler, trainerThrowBallData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02260284(SysTask *param0, void *param1) +static void Task_SlideTrainerOut(SysTask *task, void *data) { - UnkStruct_ov16_0225D3CC *v0 = (UnkStruct_ov16_0225D3CC *)param1; + SlideTrainerOutData *slideTrainerOutData = data; s16 v1; s16 v2; - switch (v0->unk_0A) { + switch (slideTrainerOutData->state) { case 0: - if (v0->unk_0B == 2) { - ManagedSprite_OffsetPositionXY(v0->battlerData->managedSprite, 5, 0); - ManagedSprite_GetPositionXY(v0->battlerData->managedSprite, &v1, &v2); + if (slideTrainerOutData->face == 2) { + ManagedSprite_OffsetPositionXY(slideTrainerOutData->battlerData->managedSprite, 5, 0); + ManagedSprite_GetPositionXY(slideTrainerOutData->battlerData->managedSprite, &v1, &v2); if (v1 >= (256 + 40)) { - v0->unk_0A++; + slideTrainerOutData->state++; } } else { - ManagedSprite_OffsetPositionXY(v0->battlerData->managedSprite, -5, 0); - ManagedSprite_GetPositionXY(v0->battlerData->managedSprite, &v1, &v2); + ManagedSprite_OffsetPositionXY(slideTrainerOutData->battlerData->managedSprite, -5, 0); + ManagedSprite_GetPositionXY(slideTrainerOutData->battlerData->managedSprite, &v1, &v2); if (v1 <= -40) { - v0->unk_0A++; + slideTrainerOutData->state++; } } break; case 1: { SpriteManager *v3; - v3 = BattleSystem_GetSpriteManager(v0->battleSys); - Sprite_DeleteAndFreeResources(v0->battlerData->managedSprite); - v0->battlerData->managedSprite = NULL; + v3 = BattleSystem_GetSpriteManager(slideTrainerOutData->battleSys); + Sprite_DeleteAndFreeResources(slideTrainerOutData->battlerData->managedSprite); + slideTrainerOutData->battlerData->managedSprite = NULL; - SpriteManager_UnloadCharObjById(v3, 20015 + v0->battlerData->battlerType); - SpriteManager_UnloadPlttObjById(v3, 20010 + v0->battlerData->battlerType); - SpriteManager_UnloadCellObjById(v3, 20007 + v0->battlerData->battlerType); - SpriteManager_UnloadAnimObjById(v3, 20007 + v0->battlerData->battlerType); + SpriteManager_UnloadCharObjById(v3, 20015 + slideTrainerOutData->battlerData->battlerType); + SpriteManager_UnloadPlttObjById(v3, 20010 + slideTrainerOutData->battlerData->battlerType); + SpriteManager_UnloadCellObjById(v3, 20007 + slideTrainerOutData->battlerData->battlerType); + SpriteManager_UnloadAnimObjById(v3, 20007 + slideTrainerOutData->battlerData->battlerType); } - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(slideTrainerOutData->battleSys, slideTrainerOutData->battler, slideTrainerOutData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02260384(SysTask *param0, void *param1) +static void Task_SlideTrainerIn(SysTask *task, void *data) { - UnkStruct_ov16_02260384 *v0 = (UnkStruct_ov16_02260384 *)param1; + SlideTrainerInData *slideTrainerInData = data; s16 v1, v2; - switch (v0->unk_0A) { + switch (slideTrainerInData->state) { case 0: - ManagedSprite_GetPositionXY(v0->unk_04, &v1, &v2); + ManagedSprite_GetPositionXY(slideTrainerInData->managedSprite, &v1, &v2); - if (v0->unk_0B == 0) { + if (slideTrainerInData->face == FACE_BACK) { v1 += 5; - if (v1 >= v0->unk_0C) { - v1 = v0->unk_0C; - v0->unk_0A++; + if (v1 >= slideTrainerInData->x) { + v1 = slideTrainerInData->x; + slideTrainerInData->state++; } } else { v1 -= 5; - if (v1 <= v0->unk_0C) { - v1 = v0->unk_0C; - v0->unk_0A++; + if (v1 <= slideTrainerInData->x) { + v1 = slideTrainerInData->x; + slideTrainerInData->state++; } } - ManagedSprite_SetPositionXY(v0->unk_04, v1, v2); + ManagedSprite_SetPositionXY(slideTrainerInData->managedSprite, v1, v2); break; case 1: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(slideTrainerInData->battleSys, slideTrainerInData->battler, slideTrainerInData->command); + Heap_Free(data); + SysTask_Done(task); break; } } @@ -2726,7 +3026,7 @@ enum SlideHealthbarInState { * @param task * @param data */ -static void SlideHealthbarInTask(SysTask *task, void *data) +static void Task_SlideHealthbarIn(SysTask *task, void *data) { Healthbar *healthbar = data; @@ -2767,7 +3067,7 @@ enum SlideHealthbarOutState { * @param task * @param data */ -static void SlideHealthbarOutTask(SysTask *task, void *data) +static void Task_SlideHealthbarOut(SysTask *task, void *data) { Healthbar *healthbar = data; @@ -2787,9 +3087,9 @@ static void SlideHealthbarOutTask(SysTask *task, void *data) } } -static void ov16_022604C8(SysTask *param0, void *param1) +static void Task_PlayerSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0; + CommandSetData *commandSetData; BgConfig *v1; UnkStruct_ov16_02268A14 *v2; BattlerData *battlerData; @@ -2797,20 +3097,20 @@ static void ov16_022604C8(SysTask *param0, void *param1) int v5; Healthbar *healthbar; - v0 = (UnkStruct_ov16_0225D5B8 *)param1; - v1 = BattleSystem_GetBgConfig(v0->battleSys); - v2 = ov16_0223E02C(v0->battleSys); - battlerData = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_09); - battleType = BattleSystem_GetBattleType(v0->battleSys); - v5 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); + commandSetData = data; + v1 = BattleSystem_GetBgConfig(commandSetData->battleSys); + v2 = ov16_0223E02C(commandSetData->battleSys); + battlerData = BattleSystem_GetBattlerData(commandSetData->battleSys, commandSetData->battler); + battleType = BattleSystem_GetBattleType(commandSetData->battleSys); + v5 = BattleSystem_GetPartner(commandSetData->battleSys, commandSetData->battler); - if (v5 != v0->unk_09) { - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v5); + if (v5 != commandSetData->battler) { + healthbar = BattleSystem_GetHealthbar(commandSetData->battleSys, v5); } else { healthbar = NULL; } - switch (v0->unk_0A) { + switch (commandSetData->state) { case 0: { @@ -2818,65 +3118,65 @@ static void ov16_022604C8(SysTask *param0, void *param1) int i; for (i = 0; i < LEARNED_MOVES_MAX; i++) { - v7.move[i] = v0->unk_24[i]; - v7.curPP[i] = v0->unk_2C[i]; - v7.maxPP[i] = v0->unk_30[i]; + v7.move[i] = commandSetData->moves[i]; + v7.curPP[i] = commandSetData->curPP[i]; + v7.maxPP[i] = commandSetData->maxPP[i]; } - ov16_0226AC98(ov16_0223E02C(v0->battleSys), v0->unk_34, &v7); + ov16_0226AC98(ov16_0223E02C(commandSetData->battleSys), commandSetData->battlerType, &v7); } - v0->unk_0A++; + commandSetData->state++; case 1: { MessageLoader *v9; BattleMessage v10; - v9 = BattleSystem_GetMessageLoader(v0->battleSys); + v9 = BattleSystem_GetMessageLoader(commandSetData->battleSys); if (battleType & BATTLE_TYPE_CATCH_TUTORIAL) { - switch (BattleSystem_GetCatchingTutorialLowHP(v0->battleSys)) { + switch (BattleSystem_GetCatchingTutorialLowHP(commandSetData->battleSys)) { case 0: v10.tags = 2; - v10.params[0] = v0->unk_09 | (v0->unk_23 << 8); + v10.params[0] = commandSetData->battler | (commandSetData->partySlot << 8); v10.id = 921; - BattleMessage_Print(v0->battleSys, v9, &v10, 0); - v0->unk_0A = 3; + BattleMessage_Print(commandSetData->battleSys, v9, &v10, 0); + commandSetData->state = 3; break; case 1: v10.tags = 0; - v10.id = 1226 + BattleSystem_GetTrainerGender(v0->battleSys, 0); - v0->unk_35 = BattleMessage_Print(v0->battleSys, v9, &v10, BattleSystem_GetTextSpeed(v0->battleSys)); - v0->unk_0A = 2; + v10.id = 1226 + BattleSystem_GetTrainerGender(commandSetData->battleSys, 0); + commandSetData->msgIdx = BattleMessage_Print(commandSetData->battleSys, v9, &v10, BattleSystem_GetTextSpeed(commandSetData->battleSys)); + commandSetData->state = 2; break; } } else { if (battleType & BATTLE_TYPE_SAFARI) { v10.tags = 8; - v10.params[0] = Battler_GetTrainerID(v0->battleSys, v0->unk_09); + v10.params[0] = Battler_GetTrainerID(commandSetData->battleSys, commandSetData->battler); v10.id = 922; } else if (battleType & BATTLE_TYPE_PAL_PARK) { v10.tags = 8; - v10.params[0] = Battler_GetTrainerID(v0->battleSys, v0->unk_09); + v10.params[0] = Battler_GetTrainerID(commandSetData->battleSys, commandSetData->battler); v10.id = 1222; } else { v10.tags = 2; - v10.params[0] = v0->unk_09 | (v0->unk_23 << 8); + v10.params[0] = commandSetData->battler | (commandSetData->partySlot << 8); v10.id = 921; } - BattleMessage_Print(v0->battleSys, v9, &v10, 0); - v0->unk_0A = 3; + BattleMessage_Print(commandSetData->battleSys, v9, &v10, 0); + commandSetData->state = 3; } } break; case 2: - if (Text_IsPrinterActive(v0->unk_35) == 0) { - v0->unk_0A = 3; + if (Text_IsPrinterActive(commandSetData->msgIdx) == 0) { + commandSetData->state = 3; } break; case 3: - ov16_0226757C(v0->unk_04); - ov16_02264798(battlerData, v0->battleSys); - v0->unk_0A = 4; + ov16_0226757C(commandSetData->healthbar); + ov16_02264798(battlerData, commandSetData->battleSys); + commandSetData->state = 4; case 4: if (ov16_02269348(v2) == 0) { break; @@ -2890,36 +3190,36 @@ static void ov16_022604C8(SysTask *param0, void *param1) v12 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); v13 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); - v11.unk_01 = v0->unk_09; - v11.unk_00 = v0->unk_34; - v11.unk_02 = v0->unk_23; - v11.unk_04 = v0->unk_36; - v11.unk_06 = v0->unk_38; - v11.unk_03 = v0->unk_3A; - v11.unk_08 = ov16_0223EC58(v0->battleSys, v0->unk_09, v0->unk_3B); + v11.unk_01 = commandSetData->battler; + v11.unk_00 = commandSetData->battlerType; + v11.unk_02 = commandSetData->partySlot; + v11.unk_04 = commandSetData->curHP; + v11.unk_06 = commandSetData->maxHP; + v11.unk_03 = commandSetData->ballStatusBattler; + v11.unk_08 = ov16_0223EC58(commandSetData->battleSys, commandSetData->battler, commandSetData->switchingOrCanPickCommandMask); if (battlerData->unk_193) { ov16_0226BCCC(v2, 1); - if (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) { + if (BattleSystem_GetBattleStatusMask(commandSetData->battleSys) & BATTLE_STATUS_FIRST_BATTLE) { ov16_02268C04(v12, v13, v2, 6, 0, &v11); - } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_PAL_PARK) { + } else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_PAL_PARK) { ov16_02268C04(v12, v13, v2, 10, 0, &v11); - } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_SAFARI) { + } else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_SAFARI) { ov16_02268C04(v12, v13, v2, 8, 0, &v11); - } else if ((v11.unk_00 == 4) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { + } else if ((v11.unk_00 == 4) && ((BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { ov16_02268C04(v12, v13, v2, 4, 0, &v11); } else { ov16_02268C04(v12, v13, v2, 3, 0, &v11); } - BattleSystem_SetCommandSelectionFlags(v0->battleSys, 1); + BattleSystem_SetCommandSelectionFlags(commandSetData->battleSys, 1); } else { - if (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) { + if (BattleSystem_GetBattleStatusMask(commandSetData->battleSys) & BATTLE_STATUS_FIRST_BATTLE) { ov16_02268C04(v12, v13, v2, 5, 0, &v11); - } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_PAL_PARK) { + } else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_PAL_PARK) { ov16_02268C04(v12, v13, v2, 9, 0, &v11); - } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_SAFARI) { + } else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_SAFARI) { ov16_02268C04(v12, v13, v2, 7, 0, &v11); } else if (v11.unk_00 != 4) { ov16_02268C04(v12, v13, v2, 1, 0, &v11); @@ -2930,8 +3230,8 @@ static void ov16_022604C8(SysTask *param0, void *param1) battlerData->unk_193 = 1; } - ov16_0226914C(v2, v0->unk_1C); - ov16_02269168(v2, v0->unk_10[0], v0->unk_10[1]); + ov16_0226914C(v2, commandSetData->expPercents); + ov16_02269168(v2, commandSetData->ballStatus[0], commandSetData->ballStatus[1]); ov16_022691BC(v2); NARC_dtor(v12); NARC_dtor(v13); @@ -2941,33 +3241,33 @@ static void ov16_022604C8(SysTask *param0, void *param1) ov16_02268468(healthbar); } - v0->unk_0A = 5; + commandSetData->state = 5; break; case 5: if (gSystem.pressedKeys & PAD_BUTTON_START) { BattlerData *battlerData; int i; - for (i = 0; i < BattleSystem_GetMaxBattlers(v0->battleSys); i++) { - battlerData = BattleSystem_GetBattlerData(v0->battleSys, i); + for (i = 0; i < BattleSystem_GetMaxBattlers(commandSetData->battleSys); i++) { + battlerData = BattleSystem_GetBattlerData(commandSetData->battleSys, i); ov16_0226737C(&battlerData->healthbar); } } - v0->unk_0C = BattleSystem_MenuInput(v2); + commandSetData->input = BattleSystem_MenuInput(v2); - if (v0->unk_0C != 0xffffffff) { - v0->unk_0B = 10; + if (commandSetData->input != 0xffffffff) { + commandSetData->unused_0B = 10; // set but never used Sound_PlayEffect(SEQ_SE_DP_DECIDE); - v0->unk_0A = 6; + commandSetData->state = 6; } break; case 6: - if ((ov16_02269348(v2) == 1) || (v0->unk_0C == 1)) { - switch (v0->unk_0C) { + if ((ov16_02269348(v2) == 1) || (commandSetData->input == 1)) { + switch (commandSetData->input) { case 1: // Fight - if (BattleSystem_GetBattleType(v0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { - v0->unk_0A = 7; + if (BattleSystem_GetBattleType(commandSetData->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + commandSetData->state = 7; } break; case 2: { // Bag @@ -2977,7 +3277,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) ov16_02268C04(v16, v17, v2, 0, 0, NULL); ov16_0226BCCC(v2, 0); ov16_0226846C(healthbar); - ov16_022675AC(v0->unk_04); + ov16_022675AC(commandSetData->healthbar); ov16_022647D8(battlerData); NARC_dtor(v16); NARC_dtor(v17); @@ -2989,7 +3289,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) ov16_02268C04(v18, v19, v2, 0, 0, NULL); ov16_0226BCCC(v2, 0); ov16_0226846C(healthbar); - ov16_022675AC(v0->unk_04); + ov16_022675AC(commandSetData->healthbar); ov16_022647D8(battlerData); NARC_dtor(v18); NARC_dtor(v19); @@ -3000,7 +3300,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) if (ov16_0226D088(v2) == 1) { ov16_0226846C(healthbar); - v0->unk_0C = 0xff; + commandSetData->input = 0xff; } ov16_02268C04(v20, v21, v2, 0, 0, NULL); @@ -3013,7 +3313,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) } ov16_02269218(v2); - v0->unk_0A = 8; + commandSetData->state = 8; } break; case 7: @@ -3024,11 +3324,11 @@ static void ov16_022604C8(SysTask *param0, void *param1) ov16_02268C04(v22, v23, v2, 0, 0, NULL); ov16_0226BCCC(v2, 0); ov16_0226846C(healthbar); - ov16_022675AC(v0->unk_04); + ov16_022675AC(commandSetData->healthbar); ov16_022647D8(battlerData); ov16_02269218(v2); - v0->unk_0A = 8; + commandSetData->state = 8; NARC_dtor(v22); NARC_dtor(v23); @@ -3036,34 +3336,34 @@ static void ov16_022604C8(SysTask *param0, void *param1) break; case 8: if (ov16_0226BCD0(v2) == 1) { - ov16_022656D4(v0->battleSys, v0->unk_09, v0->unk_0C); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, commandSetData->input); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void ov16_02260AB4(SysTask *param0, void *param1) +static void Task_TrainerSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; - int v1 = TrainerAI_PickCommand(v0->battleSys, v0->unk_09); + CommandSetData *commandSetData = data; + int v1 = TrainerAI_PickCommand(commandSetData->battleSys, commandSetData->battler); - ov16_022656D4(v0->battleSys, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, v1); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260AE4(SysTask *param0, void *param1) +static void Task_LinkSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; + CommandSetData *commandSetData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); + Heap_Free(data); + SysTask_Done(task); } static const u8 Unk_ov16_0226F194[][2] = { @@ -3082,79 +3382,79 @@ static const u8 Unk_ov16_0226F194[][2] = { { 0x28, 0xA } }; -static void ov16_02260B04(SysTask *param0, void *param1) +static void Task_SafariPokemonSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; + CommandSetData *commandSetData = data; int v1; u16 v2; - u8 v3 = BattleSystem_GetSafariEscapeCount(v0->battleSys); - v2 = BattleMon_Get(BattleSystem_GetBattleContext(v0->battleSys), v0->unk_09, 0, NULL); + u8 v3 = BattleSystem_GetSafariEscapeCount(commandSetData->battleSys); + v2 = BattleMon_Get(BattleSystem_GetBattleContext(commandSetData->battleSys), commandSetData->battler, 0, NULL); v1 = SpeciesData_GetSpeciesValue(v2, SPECIES_DATA_SAFARI_FLEE_RATE); v1 = v1 * Unk_ov16_0226F194[v3][0] / Unk_ov16_0226F194[v3][1]; - if ((BattleSystem_RandNext(v0->battleSys) % 255) <= v1) { - ov16_022656D4(v0->battleSys, v0->unk_09, 4); + if ((BattleSystem_RandNext(commandSetData->battleSys) % 255) <= v1) { + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, 4); } else { - ov16_022656D4(v0->battleSys, v0->unk_09, 5); + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, 5); } - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260B84(SysTask *param0, void *param1) +static void Task_PalParkPokemonSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; + CommandSetData *commandSetData = data; - ov16_022656D4(v0->battleSys, v0->unk_09, 4); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, 4); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260BAC(SysTask *param0, void *param1) +static void Task_RecordingSetCommandSelection(SysTask *task, void *data) { - UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; + CommandSetData *commandSetData = data; u8 v1; - if (ov16_0223F530(v0->battleSys, v0->unk_09, &v1) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(commandSetData->battleSys, commandSetData->battler, &v1) == 1) { + ov16_0226474C(commandSetData->battleSys); } if ((!v1) || (v1 > 4) || (v1 == 2)) { - ov16_02264730(v0->battleSys); + ov16_02264730(commandSetData->battleSys); } - ov16_022656D4(v0->battleSys, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + ov16_022656D4(commandSetData->battleSys, commandSetData->battler, v1); + BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260C00(SysTask *param0, void *param1) +static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; - BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); + MoveSelectMenuData *moveSelectMenuData = data; + BgConfig *v1 = BattleSystem_GetBgConfig(moveSelectMenuData->battleSys); UnkStruct_ov16_02268A14 *v2; int v3; Healthbar *healthbar; BattlerData *battlerData; - v2 = ov16_0223E02C(v0->battleSys); - battlerData = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_1D); - v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_1D); + v2 = ov16_0223E02C(moveSelectMenuData->battleSys); + battlerData = BattleSystem_GetBattlerData(moveSelectMenuData->battleSys, moveSelectMenuData->battler); + v3 = BattleSystem_GetPartner(moveSelectMenuData->battleSys, moveSelectMenuData->battler); - if (v3 != v0->unk_1D) { - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v3); + if (v3 != moveSelectMenuData->battler) { + healthbar = BattleSystem_GetHealthbar(moveSelectMenuData->battleSys, v3); } else { healthbar = NULL; } - switch (v0->unk_20) { + switch (moveSelectMenuData->state) { case 0: if (ov16_02269348(v2) == 0) { break; @@ -3164,12 +3464,12 @@ static void ov16_02260C00(SysTask *param0, void *param1) MessageLoader *v6; BattleMessage v7; - v6 = BattleSystem_GetMessageLoader(v0->battleSys); + v6 = BattleSystem_GetMessageLoader(moveSelectMenuData->battleSys); v7.tags = 2; - v7.params[0] = v0->unk_1D | (v0->unk_1F << 8); + v7.params[0] = moveSelectMenuData->battler | (moveSelectMenuData->partySlot << 8); v7.id = 921; - BattleMessage_Print(v0->battleSys, v6, &v7, 0); + BattleMessage_Print(moveSelectMenuData->battleSys, v6, &v7, 0); } ov16_02269218(v2); @@ -3181,65 +3481,67 @@ static void ov16_02260C00(SysTask *param0, void *param1) NARC *v11 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); for (i = 0; i < 4; i++) { - v8.moveIDs[i] = v0->unk_0C[i]; - v8.unk_08[i] = v0->unk_14[i]; - v8.unk_0C[i] = v0->unk_18[i]; + v8.moveIDs[i] = moveSelectMenuData->moves[i]; + v8.unk_08[i] = moveSelectMenuData->ppCur[i]; + v8.unk_0C[i] = moveSelectMenuData->ppMax[i]; } - v8.unk_10 = v0->unk_1E; + v8.unk_10 = moveSelectMenuData->battlerType; ov16_02268C04(v10, v11, v2, 11, 0, &v8); NARC_dtor(v10); NARC_dtor(v11); } - v0->unk_20++; + moveSelectMenuData->state++; break; case 1: - v0->unk_08 = BattleSystem_MenuInput(v2); + moveSelectMenuData->input = BattleSystem_MenuInput(v2); - if (v0->unk_08 != 0xffffffff) { + if (moveSelectMenuData->input != 0xffffffff) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); - v0->unk_20++; + moveSelectMenuData->state++; } break; case 2: if (1) { - if (v0->unk_08 != 0xff) { - if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) { + if (moveSelectMenuData->input != 0xff) { + if ((BattleSystem_GetBattleType(moveSelectMenuData->battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) { ov16_0226BCCC(v2, 0); ov16_0226846C(healthbar); - ov16_022675AC(v0->unk_04); + ov16_022675AC(moveSelectMenuData->healthbar); ov16_022647D8(battlerData); } } - ov16_02265790(v0->battleSys, v0->unk_1D, v0->unk_08); - v0->unk_20++; + ov16_02265790(moveSelectMenuData->battleSys, moveSelectMenuData->battler, moveSelectMenuData->input); + moveSelectMenuData->state++; } break; case 3: - v0->unk_20++; + moveSelectMenuData->state++; default: if (ov16_0226BCD0(v2) == 1) { - BattleSystem_SetCatchingTutorialLowHP(v0->battleSys, 1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); - Heap_Free(param1); - SysTask_Done(param0); + BattleSystem_SetCatchingTutorialLowHP(moveSelectMenuData->battleSys, 1); + BattleController_EmitClearCommand(moveSelectMenuData->battleSys, moveSelectMenuData->battler, moveSelectMenuData->command); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void ov16_02260DB0(SysTask *param0, void *param1) +static void Task_TrainerShowMoveSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; + MoveSelectMenuData *moveSelectMenuData = data; BattleContext *v1; int v2; - u32 battleType = BattleSystem_GetBattleType(v0->battleSys); - v1 = BattleSystem_GetBattleContext(v0->battleSys); + u32 battleType = BattleSystem_GetBattleType(moveSelectMenuData->battleSys); + v1 = BattleSystem_GetBattleContext(moveSelectMenuData->battleSys); - if ((battleType & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_ROAMER)) || (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) || (BattleSystem_GetBattlerSide(v0->battleSys, v0->unk_1D) == 0)) { - v2 = TrainerAI_Main(v0->battleSys, v0->unk_1D); + if ((battleType & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_ROAMER)) + || (BattleSystem_GetBattleStatusMask(moveSelectMenuData->battleSys) & BATTLE_STATUS_FIRST_BATTLE) + || BattleSystem_GetBattlerSide(moveSelectMenuData->battleSys, moveSelectMenuData->battler) == 0) { + v2 = TrainerAI_Main(moveSelectMenuData->battleSys, moveSelectMenuData->battler); switch (v2) { case 0xff: @@ -3258,82 +3560,82 @@ static void ov16_02260DB0(SysTask *param0, void *param1) v6 = 0; for (i = 0; i < 4; i++) { - if ((v0->unk_22 & FlagIndex(i)) == 0) { + if ((moveSelectMenuData->invalidMoves & FlagIndex(i)) == 0) { v5[v6] = i + 1; v6++; } } - v2 = v5[BattleSystem_RandNext(v0->battleSys) % v6]; + v2 = v5[BattleSystem_RandNext(moveSelectMenuData->battleSys) % v6]; } - BattleContext_Set(v0->battleSys, v1, 11, v0->unk_1D, BattleSystem_Defender(v0->battleSys, v1, v0->unk_1D, v0->unk_0C[v2 - 1], 1, NULL)); + BattleContext_Set(moveSelectMenuData->battleSys, v1, 11, moveSelectMenuData->battler, BattleSystem_Defender(moveSelectMenuData->battleSys, v1, moveSelectMenuData->battler, moveSelectMenuData->moves[v2 - 1], 1, NULL)); } - ov16_02265790(v0->battleSys, v0->unk_1D, v2); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); + ov16_02265790(moveSelectMenuData->battleSys, moveSelectMenuData->battler, v2); + BattleController_EmitClearCommand(moveSelectMenuData->battleSys, moveSelectMenuData->battler, moveSelectMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260E78(SysTask *param0, void *param1) +static void Task_LinkShowMoveSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; + MoveSelectMenuData *moveSelectMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(moveSelectMenuData->battleSys, moveSelectMenuData->battler, moveSelectMenuData->command); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260E98(SysTask *param0, void *param1) +static void Task_RecordingShowMoveSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; + MoveSelectMenuData *moveSelectMenuData = data; u8 v1; - if (ov16_0223F530(v0->battleSys, v0->unk_1D, &v1) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(moveSelectMenuData->battleSys, moveSelectMenuData->battler, &v1) == 1) { + ov16_0226474C(moveSelectMenuData->battleSys); } if ((!v1) || (v1 > 4)) { - ov16_02264730(v0->battleSys); + ov16_02264730(moveSelectMenuData->battleSys); } else { { u16 v2; - v2 = BattleMon_Get(BattleSystem_GetBattleContext(v0->battleSys), v0->unk_1D, 6 + (v1 - 1), NULL); + v2 = BattleMon_Get(BattleSystem_GetBattleContext(moveSelectMenuData->battleSys), moveSelectMenuData->battler, 6 + (v1 - 1), NULL); if ((!v2) || (v2 > 467)) { - ov16_02264730(v0->battleSys); + ov16_02264730(moveSelectMenuData->battleSys); } } } - ov16_02265790(v0->battleSys, v0->unk_1D, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); + ov16_02265790(moveSelectMenuData->battleSys, moveSelectMenuData->battler, v1); + BattleController_EmitClearCommand(moveSelectMenuData->battleSys, moveSelectMenuData->battler, moveSelectMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02260F14(SysTask *param0, void *param1) +static void Task_PlayerShowTargetSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; - BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); + TargetSelectMenuData *targetSelectMenuData = data; + BgConfig *v1 = BattleSystem_GetBgConfig(targetSelectMenuData->battleSys); UnkStruct_ov16_02268A14 *v2; int v3; Healthbar *healthbar; - BattlerData *battlerData = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D); - v2 = ov16_0223E02C(v0->battleSys); - v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_0D); + BattlerData *battlerData = BattleSystem_GetBattlerData(targetSelectMenuData->battleSys, targetSelectMenuData->battler); + v2 = ov16_0223E02C(targetSelectMenuData->battleSys); + v3 = BattleSystem_GetPartner(targetSelectMenuData->battleSys, targetSelectMenuData->battler); - if (v3 != v0->unk_0D) { - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v3); + if (v3 != targetSelectMenuData->battler) { + healthbar = BattleSystem_GetHealthbar(targetSelectMenuData->battleSys, v3); } else { healthbar = NULL; } - switch (v0->unk_0F) { + switch (targetSelectMenuData->state) { case 0: if (ov16_02269348(v2) == 0) { break; @@ -3346,44 +3648,44 @@ static void ov16_02260F14(SysTask *param0, void *param1) NARC *v9 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); for (i = 0; i < 4; i++) { - v6.unk_00[i] = v0->unk_10[i]; + v6.unk_00[i] = targetSelectMenuData->targetMon[i]; } - v6.unk_20 = v0->unk_0E; - v6.unk_21 = ov16_02269368(v0->unk_30, v0->unk_0E); + v6.unk_20 = targetSelectMenuData->battlerType; + v6.unk_21 = ov16_02269368(targetSelectMenuData->range, targetSelectMenuData->battlerType); ov16_02268C04(v8, v9, v2, 12, 0, &v6); NARC_dtor(v8); NARC_dtor(v9); } - v0->unk_0F++; + targetSelectMenuData->state++; break; case 1: - v0->unk_08 = BattleSystem_MenuInput(v2); + targetSelectMenuData->input = BattleSystem_MenuInput(v2); - if (v0->unk_08 != 0xffffffff) { + if (targetSelectMenuData->input != 0xffffffff) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); - v0->unk_0F++; + targetSelectMenuData->state++; } break; case 2: if (1) { - if (v0->unk_08 != 0xff) { - ov16_022675AC(v0->unk_04); + if (targetSelectMenuData->input != 0xff) { + ov16_022675AC(targetSelectMenuData->healthbar); ov16_022647D8(battlerData); ov16_0226846C(healthbar); - if (v0->unk_32 == 1) { + if (targetSelectMenuData->unk_32 == 1) { ov16_0226BCCC(v2, 0); } } - v0->unk_0F++; + targetSelectMenuData->state++; } break; case 3: - v0->unk_0F++; + targetSelectMenuData->state++; default: if (ov16_0226BCD0(v2) == 1) { { @@ -3391,83 +3693,83 @@ static void ov16_02260F14(SysTask *param0, void *param1) u32 battleType; int v12; - v12 = v0->unk_08; - battleType = BattleSystem_GetBattleType(v0->battleSys); + v12 = targetSelectMenuData->input; + battleType = BattleSystem_GetBattleType(targetSelectMenuData->battleSys); if (v12 != 0xff) { - ov16_0223F858(v0->battleSys, &v10[0]); + ov16_0223F858(targetSelectMenuData->battleSys, &v10[0]); if (battleType & BATTLE_TYPE_DOUBLES) { - v12 = v10[2 + (v0->unk_08 - 1)] + 1; + v12 = v10[2 + (targetSelectMenuData->input - 1)] + 1; } else { - v12 = v10[0 + (v0->unk_08 - 1)] + 1; + v12 = v10[0 + (targetSelectMenuData->input - 1)] + 1; } } - ov16_022658CC(v0->battleSys, v0->unk_0D, v12); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); - Heap_Free(param1); - SysTask_Done(param0); + ov16_022658CC(targetSelectMenuData->battleSys, targetSelectMenuData->battler, v12); + BattleController_EmitClearCommand(targetSelectMenuData->battleSys, targetSelectMenuData->battler, targetSelectMenuData->command); + Heap_Free(data); + SysTask_Done(task); } } break; } } -static void ov16_022610A8(SysTask *param0, void *param1) +static void Task_TrainerShowTargetSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; + TargetSelectMenuData *targetSelectMenuData = data; BattleContext *v1; int v2; - v1 = BattleSystem_GetBattleContext(v0->battleSys); - v2 = BattleContext_Get(v0->battleSys, v1, 11, v0->unk_0D) + 1; + v1 = BattleSystem_GetBattleContext(targetSelectMenuData->battleSys); + v2 = BattleContext_Get(targetSelectMenuData->battleSys, v1, 11, targetSelectMenuData->battler) + 1; GF_ASSERT(v2 < 5); - ov16_022658CC(v0->battleSys, v0->unk_0D, v2); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_022658CC(targetSelectMenuData->battleSys, targetSelectMenuData->battler, v2); + BattleController_EmitClearCommand(targetSelectMenuData->battleSys, targetSelectMenuData->battler, targetSelectMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_022610EC(SysTask *param0, void *param1) +static void Task_LinkShowTargetSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; + TargetSelectMenuData *targetSelectMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(targetSelectMenuData->battleSys, targetSelectMenuData->battler, targetSelectMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_0226110C(SysTask *param0, void *param1) +static void Task_RecordingShowTargetSelectMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; + TargetSelectMenuData *targetSelectMenuData = data; u8 v1; - if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v1) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(targetSelectMenuData->battleSys, targetSelectMenuData->battler, &v1) == 1) { + ov16_0226474C(targetSelectMenuData->battleSys); } if ((!v1) || (v1 > 4)) { - ov16_02264730(v0->battleSys); + ov16_02264730(targetSelectMenuData->battleSys); } else { { int v2 = v1 - 1; - switch (v0->unk_30) { + switch (targetSelectMenuData->range) { case 0x0: - if (v0->unk_0D == v2) { - ov16_02264730(v0->battleSys); + if (targetSelectMenuData->battler == v2) { + ov16_02264730(targetSelectMenuData->battleSys); } break; case 0x200: - if (BattleSystem_GetBattlerSide(v0->battleSys, v0->unk_0D) != BattleSystem_GetBattlerSide(v0->battleSys, v2)) { - ov16_02264730(v0->battleSys); + if (BattleSystem_GetBattlerSide(targetSelectMenuData->battleSys, targetSelectMenuData->battler) != BattleSystem_GetBattlerSide(targetSelectMenuData->battleSys, v2)) { + ov16_02264730(targetSelectMenuData->battleSys); } break; case 0x1: @@ -3485,72 +3787,72 @@ static void ov16_0226110C(SysTask *param0, void *param1) } } - ov16_022658CC(v0->battleSys, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_022658CC(targetSelectMenuData->battleSys, targetSelectMenuData->battler, v1); + BattleController_EmitClearCommand(targetSelectMenuData->battleSys, targetSelectMenuData->battler, targetSelectMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_022611DC(SysTask *param0, void *param1) +static void Task_PlayerShowBagMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; - PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); + BagMenuData *bagMenuData = data; + PaletteData *v1 = BattleSystem_GetPaletteData(bagMenuData->battleSys); - switch (v0->unk_0E) { + switch (bagMenuData->state) { case 0: - v0->unk_10 = ov16_0226CD08(ov16_0223E02C(v0->battleSys)); - sub_02015738(ov16_0223E220(v0->battleSys), 1); + bagMenuData->isCursorEnabled = ov16_0226CD08(ov16_0223E02C(bagMenuData->battleSys)); + sub_02015738(ov16_0223E220(bagMenuData->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 0, 7, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 0, 16, 0x0); - v0->unk_0E++; + bagMenuData->state++; break; case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { { - ov16_0223B384(v0->battleSys); + ov16_0223B384(bagMenuData->battleSys); - v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleBagContext)); - memset(v0->unk_04, 0, sizeof(BattleBagContext)); + bagMenuData->battleBagCtx = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleBagContext)); + memset(bagMenuData->battleBagCtx, 0, sizeof(BattleBagContext)); - v0->unk_04->battleSys = v0->battleSys; - v0->unk_04->trainerInfo = BattleSystem_GetTrainerInfo(v0->battleSys, v0->unk_0D); - v0->unk_04->heapID = HEAP_ID_BATTLE; - v0->unk_04->battleBagExited = FALSE; - v0->unk_04->bag = BattleSystem_GetBag(v0->battleSys); - v0->unk_04->battler = v0->unk_0D; - v0->unk_04->isCursorEnabled = v0->unk_10; - v0->unk_04->hasTwoOpponents = v0->unk_14; - v0->unk_04->opponentHidden = v0->unk_15; - v0->unk_04->opponentSubstituted = v0->unk_16; - v0->unk_04->embargoRemainingTurns = v0->unk_30[v0->unk_0D]; - BattleBagTask_Start(v0->unk_04); - v0->unk_0E = 3; + bagMenuData->battleBagCtx->battleSys = bagMenuData->battleSys; + bagMenuData->battleBagCtx->trainerInfo = BattleSystem_GetTrainerInfo(bagMenuData->battleSys, bagMenuData->battler); + bagMenuData->battleBagCtx->heapID = HEAP_ID_BATTLE; + bagMenuData->battleBagCtx->battleBagExited = FALSE; + bagMenuData->battleBagCtx->bag = BattleSystem_GetBag(bagMenuData->battleSys); + bagMenuData->battleBagCtx->battler = bagMenuData->battler; + bagMenuData->battleBagCtx->isCursorEnabled = bagMenuData->isCursorEnabled; + bagMenuData->battleBagCtx->hasTwoOpponents = bagMenuData->hasTwoOpponents; + bagMenuData->battleBagCtx->opponentHidden = bagMenuData->semiInvulnerable; + bagMenuData->battleBagCtx->opponentSubstituted = bagMenuData->substitute; + bagMenuData->battleBagCtx->embargoRemainingTurns = bagMenuData->embargoTurns[bagMenuData->battler]; + BattleBagTask_Start(bagMenuData->battleBagCtx); + bagMenuData->state = 3; } } break; case 2: - v0->unk_04->isCursorEnabled = v0->unk_10; - BattleBagTask_Start(v0->unk_04); - v0->unk_0E++; + bagMenuData->battleBagCtx->isCursorEnabled = bagMenuData->isCursorEnabled; + BattleBagTask_Start(bagMenuData->battleBagCtx); + bagMenuData->state++; case 3: - if (v0->unk_04->battleBagExited) { - v0->unk_04->battleBagExited = 0; - v0->unk_10 = v0->unk_04->isCursorEnabled; + if (bagMenuData->battleBagCtx->battleBagExited) { + bagMenuData->battleBagCtx->battleBagExited = 0; + bagMenuData->isCursorEnabled = bagMenuData->battleBagCtx->isCursorEnabled; - if (v0->unk_04->selectedBattleBagItem) { - switch (v0->unk_04->selectedBattleBagPocket) { + if (bagMenuData->battleBagCtx->selectedBattleBagItem) { + switch (bagMenuData->battleBagCtx->selectedBattleBagPocket) { case BATTLE_POCKET_INDEX_RECOVER_STATUS: case BATTLE_POCKET_INDEX_RECOVER_HP_PP: - v0->unk_0E = 4; + bagMenuData->state = 4; break; case BATTLE_POCKET_INDEX_BATTLE_ITEMS: case BATTLE_POCKET_INDEX_POKE_BALLS: - v0->unk_0E = 6; + bagMenuData->state = 6; break; } } else { - v0->unk_0E = 6; + bagMenuData->state = 6; } } break; @@ -3558,166 +3860,166 @@ static void ov16_022611DC(SysTask *param0, void *param1) int i; int v3 = 0; int v4; - Party *v5 = BattleSystem_GetParty(v0->battleSys, v0->unk_0D); + Party *v5 = BattleSystem_GetParty(bagMenuData->battleSys, bagMenuData->battler); Pokemon *v6; - if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == 0)) { - v4 = v0->unk_0D & 1; + if ((BattleSystem_GetBattleType(bagMenuData->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(bagMenuData->battleSys) & BATTLE_TYPE_2vs2) == 0)) { + v4 = bagMenuData->battler & 1; } else { - v4 = v0->unk_0D; + v4 = bagMenuData->battler; } - Party_InitWithCapacity(v0->unk_08->unk_04->party, 6); + Party_InitWithCapacity(bagMenuData->partyMenuData->battlePartyCtx->party, 6); for (i = 0; i < Party_GetCurrentCount(v5); i++) { - v6 = BattleSystem_GetPartyPokemon(v0->battleSys, v4, v0->unk_18[v4][i]); - Party_AddPokemon(v0->unk_08->unk_04->party, v6); - v0->unk_08->unk_04->pokemonPartySlots[i] = v0->unk_18[v4][i]; + v6 = BattleSystem_GetPartyPokemon(bagMenuData->battleSys, v4, bagMenuData->partyOrder[v4][i]); + Party_AddPokemon(bagMenuData->partyMenuData->battlePartyCtx->party, v6); + bagMenuData->partyMenuData->battlePartyCtx->pokemonPartySlots[i] = bagMenuData->partyOrder[v4][i]; } - v0->unk_08->unk_04->battleSys = v0->battleSys; - v0->unk_08->unk_04->heapID = HEAP_ID_BATTLE; - v0->unk_08->unk_04->selectedPartyIndex = 0; - v0->unk_08->unk_04->battlePartyExited = 0; - v0->unk_08->unk_04->moveToLearn = MOVE_NONE; - v0->unk_08->unk_04->battlePartyMode = BATTLE_PARTY_MODE_USE_ITEM; - v0->unk_08->unk_04->selectedBattleBagItem = v0->unk_04->selectedBattleBagItem; - v0->unk_08->unk_04->selectedBattleBagPocket = v0->unk_04->selectedBattleBagPocket; - v0->unk_08->unk_04->battler = v0->unk_04->battler; - v0->unk_08->unk_04->isCursorEnabled = v0->unk_10; - v0->unk_08->unk_04->playerPokemonPartySlot = v0->unk_08->unk_0C[v0->unk_0D]; - v0->unk_08->unk_04->partnerPokemonPartySlot = v0->unk_08->unk_0C[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; + bagMenuData->partyMenuData->battlePartyCtx->battleSys = bagMenuData->battleSys; + bagMenuData->partyMenuData->battlePartyCtx->heapID = HEAP_ID_BATTLE; + bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex = 0; + bagMenuData->partyMenuData->battlePartyCtx->battlePartyExited = 0; + bagMenuData->partyMenuData->battlePartyCtx->moveToLearn = MOVE_NONE; + bagMenuData->partyMenuData->battlePartyCtx->battlePartyMode = BATTLE_PARTY_MODE_USE_ITEM; + bagMenuData->partyMenuData->battlePartyCtx->selectedBattleBagItem = bagMenuData->battleBagCtx->selectedBattleBagItem; + bagMenuData->partyMenuData->battlePartyCtx->selectedBattleBagPocket = bagMenuData->battleBagCtx->selectedBattleBagPocket; + bagMenuData->partyMenuData->battlePartyCtx->battler = bagMenuData->battleBagCtx->battler; + bagMenuData->partyMenuData->battlePartyCtx->isCursorEnabled = bagMenuData->isCursorEnabled; + bagMenuData->partyMenuData->battlePartyCtx->playerPokemonPartySlot = bagMenuData->partyMenuData->partySlots[bagMenuData->battler]; + bagMenuData->partyMenuData->battlePartyCtx->partnerPokemonPartySlot = bagMenuData->partyMenuData->partySlots[BattleSystem_GetPartner(bagMenuData->battleSys, bagMenuData->battler)]; - if (v0->unk_0F == 4) { - v0->unk_08->unk_04->embargoRemainingTurns[0] = v0->unk_30[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; - v0->unk_08->unk_04->embargoRemainingTurns[1] = v0->unk_30[v0->unk_0D]; + if (bagMenuData->battlerType == 4) { + bagMenuData->partyMenuData->battlePartyCtx->embargoRemainingTurns[0] = bagMenuData->embargoTurns[BattleSystem_GetPartner(bagMenuData->battleSys, bagMenuData->battler)]; + bagMenuData->partyMenuData->battlePartyCtx->embargoRemainingTurns[1] = bagMenuData->embargoTurns[bagMenuData->battler]; } else { - v0->unk_08->unk_04->embargoRemainingTurns[0] = v0->unk_30[v0->unk_0D]; - v0->unk_08->unk_04->embargoRemainingTurns[1] = v0->unk_30[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; + bagMenuData->partyMenuData->battlePartyCtx->embargoRemainingTurns[0] = bagMenuData->embargoTurns[bagMenuData->battler]; + bagMenuData->partyMenuData->battlePartyCtx->embargoRemainingTurns[1] = bagMenuData->embargoTurns[BattleSystem_GetPartner(bagMenuData->battleSys, bagMenuData->battler)]; } - BattlePartyTask_Start(v0->unk_08->unk_04); - v0->unk_0E++; + BattlePartyTask_Start(bagMenuData->partyMenuData->battlePartyCtx); + bagMenuData->state++; } break; case 5: - if (v0->unk_08->unk_04->battlePartyExited) { - v0->unk_10 = v0->unk_08->unk_04->isCursorEnabled; - v0->unk_08->unk_04->battlePartyExited = 0; + if (bagMenuData->partyMenuData->battlePartyCtx->battlePartyExited) { + bagMenuData->isCursorEnabled = bagMenuData->partyMenuData->battlePartyCtx->isCursorEnabled; + bagMenuData->partyMenuData->battlePartyCtx->battlePartyExited = 0; - if (v0->unk_08->unk_04->selectedPartyIndex == 6) { - v0->unk_0E = 2; + if (bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex == 6) { + bagMenuData->state = 2; } else { - v0->unk_0E = 6; + bagMenuData->state = 6; } } break; case 6: - ov16_0223B430(v0->battleSys); - ov16_0226CD10(ov16_0223E02C(v0->battleSys), v0->unk_10); + ov16_0223B430(bagMenuData->battleSys); + ov16_0226CD10(ov16_0223E02C(bagMenuData->battleSys), bagMenuData->isCursorEnabled); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 7, 0, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); - v0->unk_0E++; + bagMenuData->state++; break; case 7: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - sub_02015738(ov16_0223E220(v0->battleSys), 0); + sub_02015738(ov16_0223E220(bagMenuData->battleSys), 0); - if (v0->unk_04->selectedBattleBagItem) { - v0->unk_0E = 9; + if (bagMenuData->battleBagCtx->selectedBattleBagItem) { + bagMenuData->state = 9; - switch (v0->unk_04->selectedBattleBagPocket) { + switch (bagMenuData->battleBagCtx->selectedBattleBagPocket) { case BATTLE_POCKET_INDEX_RECOVER_STATUS: - if ((v0->unk_04->selectedBattleBagItem == ITEM_REVIVE) || (v0->unk_04->selectedBattleBagItem == ITEM_MAX_REVIVE)) { - v0->unk_0E = 8; - } else if (((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) { - if (v0->unk_04->selectedBattleBagItem == ITEM_FULL_RESTORE) { - if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { - v0->unk_12 = 17; + if ((bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_REVIVE) || (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_MAX_REVIVE)) { + bagMenuData->state = 8; + } else if (((bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(bagMenuData->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(bagMenuData->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex < 1)) { + if (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_FULL_RESTORE) { + if (BattleSystem_AreAnimationsOn(bagMenuData->battleSys) == 1) { + bagMenuData->stateAfterDelay = 17; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); - v0->unk_12 = 21; + bagMenuData->stateAfterDelay = 21; } } else { - if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { - v0->unk_12 = 25; + if (BattleSystem_AreAnimationsOn(bagMenuData->battleSys) == 1) { + bagMenuData->stateAfterDelay = 25; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); - v0->unk_12 = 29; + bagMenuData->stateAfterDelay = 29; } } } else { - v0->unk_0E = 8; + bagMenuData->state = 8; } break; case BATTLE_POCKET_INDEX_RECOVER_HP_PP: - if ((((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) && (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE))) { - if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { - v0->unk_12 = 17; + if ((((bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(bagMenuData->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(bagMenuData->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex < 1)) && (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE))) { + if (BattleSystem_AreAnimationsOn(bagMenuData->battleSys) == 1) { + bagMenuData->stateAfterDelay = 17; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); - v0->unk_12 = 21; + bagMenuData->stateAfterDelay = 21; } } else { - v0->unk_0E = 8; + bagMenuData->state = 8; } break; case BATTLE_POCKET_INDEX_BATTLE_ITEMS: - if ((v0->unk_04->selectedBattleBagItem == ITEM_POKE_DOLL) || (v0->unk_04->selectedBattleBagItem == ITEM_FLUFFY_TAIL)) { - v0->unk_0E = 8; + if ((bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_POKE_DOLL) || (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_FLUFFY_TAIL)) { + bagMenuData->state = 8; } else { - if (v0->unk_04->selectedBattleBagItem == ITEM_GUARD_SPEC) { - if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { - v0->unk_12 = 13; + if (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_GUARD_SPEC) { + if (BattleSystem_AreAnimationsOn(bagMenuData->battleSys) == 1) { + bagMenuData->stateAfterDelay = 13; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); - v0->unk_12 = 15; + bagMenuData->stateAfterDelay = 15; } } else { - if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { - v0->unk_12 = 11; + if (BattleSystem_AreAnimationsOn(bagMenuData->battleSys) == 1) { + bagMenuData->stateAfterDelay = 11; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); - v0->unk_12 = 15; + bagMenuData->stateAfterDelay = 15; } } } break; case BATTLE_POCKET_INDEX_POKE_BALLS: - v0->unk_0E = 8; + bagMenuData->state = 8; break; } } else { - v0->unk_0E = 8; + bagMenuData->state = 8; } - if (v0->unk_0E != 8) { - BattleSystem_LoadFightOverlay(v0->battleSys, 0); + if (bagMenuData->state != 8) { + BattleSystem_LoadFightOverlay(bagMenuData->battleSys, 0); } } break; case 8: { BattleItemUse v7; - if (v0->unk_04->selectedBattleBagItem == ITEM_NONE) { + if (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_NONE) { v7.item = 0xff; } else { - v7.item = v0->unk_04->selectedBattleBagItem; - v7.category = v0->unk_04->selectedBattleBagPocket; + v7.item = bagMenuData->battleBagCtx->selectedBattleBagItem; + v7.category = bagMenuData->battleBagCtx->selectedBattleBagPocket; - if ((v0->unk_04->selectedBattleBagPocket == BATTLE_POCKET_INDEX_RECOVER_STATUS) || (v0->unk_04->selectedBattleBagPocket == BATTLE_POCKET_INDEX_RECOVER_HP_PP)) { - v7.target = 1 + v0->unk_08->unk_04->pokemonPartySlots[v0->unk_08->unk_04->selectedPartyIndex]; + if ((bagMenuData->battleBagCtx->selectedBattleBagPocket == BATTLE_POCKET_INDEX_RECOVER_STATUS) || (bagMenuData->battleBagCtx->selectedBattleBagPocket == BATTLE_POCKET_INDEX_RECOVER_HP_PP)) { + v7.target = 1 + bagMenuData->partyMenuData->battlePartyCtx->pokemonPartySlots[bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex]; } } - ov16_02265A70(v0->battleSys, v0->unk_0D, v7); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_02265A70(bagMenuData->battleSys, bagMenuData->battler, v7); + BattleController_EmitClearCommand(bagMenuData->battleSys, bagMenuData->battler, bagMenuData->command); - Heap_Free(v0->unk_08->unk_04->party); - Heap_Free(v0->unk_08->unk_04); - Heap_Free(v0->unk_08); - Heap_Free(v0->unk_04); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx->party); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx); + Heap_Free(bagMenuData->partyMenuData); + Heap_Free(bagMenuData->battleBagCtx); + Heap_Free(data); + SysTask_Done(task); } break; case 9: { MessageLoader *v8; @@ -3725,55 +4027,55 @@ static void ov16_022611DC(SysTask *param0, void *param1) v9.id = 1206; v9.tags = 5; - v9.params[0] = v0->unk_04->selectedBattleBagItem; + v9.params[0] = bagMenuData->battleBagCtx->selectedBattleBagItem; - v8 = BattleSystem_GetMessageLoader(v0->battleSys); + v8 = BattleSystem_GetMessageLoader(bagMenuData->battleSys); - v0->unk_11 = BattleMessage_Print(v0->battleSys, v8, &v9, BattleSystem_GetTextSpeed(v0->battleSys)); - v0->unk_17 = 30; - v0->unk_0E++; + bagMenuData->msgIdx = BattleMessage_Print(bagMenuData->battleSys, v8, &v9, BattleSystem_GetTextSpeed(bagMenuData->battleSys)); + bagMenuData->delay = 30; + bagMenuData->state++; } break; case 10: - if (Text_IsPrinterActive(v0->unk_11) == 0) { - if (--v0->unk_17 == 0) { - v0->unk_0E = v0->unk_12; + if (Text_IsPrinterActive(bagMenuData->msgIdx) == 0) { + if (--bagMenuData->delay == 0) { + bagMenuData->state = bagMenuData->stateAfterDelay; } } break; case 11: { MoveAnimation v10; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v10, 1, 9, v0->unk_0D, v0->unk_0D, NULL); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v10); + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v10, 1, 9, bagMenuData->battler, bagMenuData->battler, NULL); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, bagMenuData->battler), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v10); } - v0->unk_0E++; + bagMenuData->state++; break; case 17: case 25: { MoveAnimation v11; int v12; - v12 = v0->unk_08->unk_04->selectedPartyIndex * 2; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v11, 1, 9, v12, v12, NULL); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v12), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v11); + v12 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v11, 1, 9, v12, v12, NULL); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, v12), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v11); } - v0->unk_0E++; + bagMenuData->state++; break; case 13: { MoveAnimation v13; - if (v0->unk_04->selectedBattleBagItem == ITEM_GUARD_SPEC) { - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 54); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); - } else if (v0->unk_04->selectedBattleBagItem == ITEM_DIRE_HIT) { - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 116); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); + if (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_GUARD_SPEC) { + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v13, 0, NULL, bagMenuData->battler, bagMenuData->battler, 54); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, bagMenuData->battler), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v13); + } else if (bagMenuData->battleBagCtx->selectedBattleBagItem == ITEM_DIRE_HIT) { + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v13, 0, NULL, bagMenuData->battler, bagMenuData->battler, 116); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, bagMenuData->battler), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v13); } else { - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 1, 12, v0->unk_0D, v0->unk_0D, NULL); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v13, 1, 12, bagMenuData->battler, bagMenuData->battler, NULL); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, bagMenuData->battler), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v13); } - v0->unk_0E++; + bagMenuData->state++; } break; case 15: { MessageLoader *v14; @@ -3781,9 +4083,9 @@ static void ov16_022611DC(SysTask *param0, void *param1) v15.id = 1203; v15.tags = 12; - v15.params[0] = v0->unk_0D | (v0->unk_08->unk_0C[v0->unk_0D] << 8); + v15.params[0] = bagMenuData->battler | (bagMenuData->partyMenuData->partySlots[bagMenuData->battler] << 8); - switch (v0->unk_04->selectedBattleBagItem) { + switch (bagMenuData->battleBagCtx->selectedBattleBagItem) { case ITEM_X_ATTACK: v15.params[1] = 0x1; break; @@ -3812,22 +4114,22 @@ static void ov16_022611DC(SysTask *param0, void *param1) break; } - v14 = BattleSystem_GetMessageLoader(v0->battleSys); - v0->unk_11 = BattleMessage_Print(v0->battleSys, v14, &v15, BattleSystem_GetTextSpeed(v0->battleSys)); - v0->unk_17 = 30; + v14 = BattleSystem_GetMessageLoader(bagMenuData->battleSys); + bagMenuData->msgIdx = BattleMessage_Print(bagMenuData->battleSys, v14, &v15, BattleSystem_GetTextSpeed(bagMenuData->battleSys)); + bagMenuData->delay = 30; } - v0->unk_0E++; + bagMenuData->state++; break; case 19: case 27: { MoveAnimation v16; int v17; - v17 = v0->unk_08->unk_04->selectedPartyIndex * 2; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v16, 1, 14, v17, v17, NULL); - ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v17), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v16); + v17 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; + BattleController_SetMoveAnimation(bagMenuData->battleSys, NULL, &v16, 1, 14, v17, v17, NULL); + ov16_02264408(bagMenuData->battleSys, BattleSystem_GetBattlerData(bagMenuData->battleSys, v17), BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys), &v16); } - v0->unk_0E++; + bagMenuData->state++; break; case 21: { Healthbar *healthbar; @@ -3835,17 +4137,17 @@ static void ov16_022611DC(SysTask *param0, void *param1) int v20; int v21; - v20 = v0->unk_08->unk_04->selectedPartyIndex * 2; - v21 = v0->unk_08->unk_04->pokemonPartySlots[v0->unk_08->unk_04->selectedPartyIndex]; + v20 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; + v21 = bagMenuData->partyMenuData->battlePartyCtx->pokemonPartySlots[bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex]; - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v20); + healthbar = BattleSystem_GetHealthbar(bagMenuData->battleSys, v20); MI_CpuClear8(&healthbar->state, sizeof(u8)); - healthbar->type = Healthbar_Type(BattleSystem_GetBattlerType(v0->battleSys, v20), BattleSystem_GetBattleType(v0->battleSys)); + healthbar->type = Healthbar_Type(BattleSystem_GetBattlerType(bagMenuData->battleSys, v20), BattleSystem_GetBattleType(bagMenuData->battleSys)); - v19 = BattleSystem_GetPartyPokemon(v0->battleSys, v20, v21); - healthbar->curHP = Pokemon_GetValue(v19, MON_DATA_HP, NULL) - v0->unk_08->unk_04->currentDamage; + v19 = BattleSystem_GetPartyPokemon(bagMenuData->battleSys, v20, v21); + healthbar->curHP = Pokemon_GetValue(v19, MON_DATA_HP, NULL) - bagMenuData->partyMenuData->battlePartyCtx->currentDamage; healthbar->maxHP = Pokemon_GetValue(v19, MON_DATA_MAX_HP, NULL); - healthbar->damage = v0->unk_08->unk_04->currentDamage; + healthbar->damage = bagMenuData->partyMenuData->battlePartyCtx->currentDamage; if (Pokemon_GetValue(v19, MON_DATA_STATUS, NULL) == 0) { healthbar->status = 0; @@ -3853,18 +4155,18 @@ static void ov16_022611DC(SysTask *param0, void *param1) Healthbar_CalcHP(healthbar, healthbar->damage); } - v0->unk_0E++; + bagMenuData->state++; break; case 22: { Healthbar *healthbar; int v23; - v23 = v0->unk_08->unk_04->selectedPartyIndex * 2; - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v23); + v23 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; + healthbar = BattleSystem_GetHealthbar(bagMenuData->battleSys, v23); if (ov16_022674F8(healthbar) == -1) { Healthbar_DrawInfo(healthbar, NULL, HEALTHBAR_INFO_STATUS); - v0->unk_0E++; + bagMenuData->state++; } } break; case 23: { @@ -3872,24 +4174,24 @@ static void ov16_022611DC(SysTask *param0, void *param1) BattleMessage v25; int v26; - v24 = BattleSystem_GetMessageLoader(v0->battleSys); - v26 = v0->unk_08->unk_04->selectedPartyIndex * 2; + v24 = BattleSystem_GetMessageLoader(bagMenuData->battleSys); + v26 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; - if (v0->unk_08->unk_04->currentDamage) { + if (bagMenuData->partyMenuData->battlePartyCtx->currentDamage) { v25.id = 1214; v25.tags = 17; - v25.params[0] = v26 | (v0->unk_08->unk_0C[v26] << 8); - v25.params[1] = v0->unk_08->unk_04->currentDamage; + v25.params[0] = v26 | (bagMenuData->partyMenuData->partySlots[v26] << 8); + v25.params[1] = bagMenuData->partyMenuData->battlePartyCtx->currentDamage; } else { v25.id = 1250; v25.tags = 2; - v25.params[0] = v26 | (v0->unk_08->unk_0C[v26] << 8); + v25.params[0] = v26 | (bagMenuData->partyMenuData->partySlots[v26] << 8); } - v0->unk_11 = BattleMessage_Print(v0->battleSys, v24, &v25, BattleSystem_GetTextSpeed(v0->battleSys)); - v0->unk_17 = 30; + bagMenuData->msgIdx = BattleMessage_Print(bagMenuData->battleSys, v24, &v25, BattleSystem_GetTextSpeed(bagMenuData->battleSys)); + bagMenuData->delay = 30; - v0->unk_0E++; + bagMenuData->state++; } break; case 29: { Healthbar *healthbar; @@ -3901,10 +4203,10 @@ static void ov16_022611DC(SysTask *param0, void *param1) Pokemon *v33; int v34; - v28 = v0->unk_08->unk_04->selectedPartyIndex * 2; - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v28); - v34 = v0->unk_08->unk_04->pokemonPartySlots[v0->unk_08->unk_04->selectedPartyIndex]; - v33 = BattleSystem_GetPartyPokemon(v0->battleSys, v28, v34); + v28 = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2; + healthbar = BattleSystem_GetHealthbar(bagMenuData->battleSys, v28); + v34 = bagMenuData->partyMenuData->battlePartyCtx->pokemonPartySlots[bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex]; + v33 = BattleSystem_GetPartyPokemon(bagMenuData->battleSys, v28, v34); if (Pokemon_GetValue(v33, MON_DATA_STATUS, NULL) == 0) { healthbar->status = 0; @@ -3913,39 +4215,39 @@ static void ov16_022611DC(SysTask *param0, void *param1) Healthbar_DrawInfo(healthbar, healthbar->curHP, HEALTHBAR_INFO_STATUS); v30.tags = 2; - v30.params[0] = v28 | (v0->unk_08->unk_0C[v28] << 8); + v30.params[0] = v28 | (bagMenuData->partyMenuData->partySlots[v28] << 8); - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_SLEEP, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_SLEEP, HEAP_ID_BATTLE)) { v31 = 0; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_POISON, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_POISON, HEAP_ID_BATTLE)) { v31 = 1; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_BURN, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_BURN, HEAP_ID_BATTLE)) { v31 = 2; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_FREEZE, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_FREEZE, HEAP_ID_BATTLE)) { v31 = 3; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_PARALYSIS, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_PARALYSIS, HEAP_ID_BATTLE)) { v31 = 4; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_CONFUSION, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_CONFUSION, HEAP_ID_BATTLE)) { v31 = 5; v32++; } - if (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HEAL_ATTRACT, HEAP_ID_BATTLE)) { + if (Item_LoadParam(bagMenuData->battleBagCtx->selectedBattleBagItem, ITEM_PARAM_HEAL_ATTRACT, HEAP_ID_BATTLE)) { v31 = 6; v32++; } @@ -3978,11 +4280,11 @@ static void ov16_022611DC(SysTask *param0, void *param1) } } - v29 = BattleSystem_GetMessageLoader(v0->battleSys); - v0->unk_11 = BattleMessage_Print(v0->battleSys, v29, &v30, BattleSystem_GetTextSpeed(v0->battleSys)); - v0->unk_17 = 30; + v29 = BattleSystem_GetMessageLoader(bagMenuData->battleSys); + bagMenuData->msgIdx = BattleMessage_Print(bagMenuData->battleSys, v29, &v30, BattleSystem_GetTextSpeed(bagMenuData->battleSys)); + bagMenuData->delay = 30; } - v0->unk_0E++; + bagMenuData->state++; break; case 12: @@ -3991,111 +4293,111 @@ static void ov16_022611DC(SysTask *param0, void *param1) case 20: case 26: case 28: - BattleAnimSystem_ExecuteScript(BattleSystem_GetBattleAnimSystem(v0->battleSys)); + BattleAnimSystem_ExecuteScript(BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys)); - if (BattleAnimSystem_IsMoveActive(BattleSystem_GetBattleAnimSystem(v0->battleSys)) == 0) { - BattleAnimSystem_FreeScriptData(BattleSystem_GetBattleAnimSystem(v0->battleSys)); - v0->unk_0E++; + if (BattleAnimSystem_IsMoveActive(BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys)) == 0) { + BattleAnimSystem_FreeScriptData(BattleSystem_GetBattleAnimSystem(bagMenuData->battleSys)); + bagMenuData->state++; } break; case 16: case 24: case 30: - if (Text_IsPrinterActive(v0->unk_11) == 0) { - if (--v0->unk_17 == 0) { - BattleSystem_LoadFightOverlay(v0->battleSys, 1); - v0->unk_0E = 8; + if (Text_IsPrinterActive(bagMenuData->msgIdx) == 0) { + if (--bagMenuData->delay == 0) { + BattleSystem_LoadFightOverlay(bagMenuData->battleSys, 1); + bagMenuData->state = 8; } } break; } } -static void ov16_02261D50(SysTask *param0, void *param1) +static void Task_TrainerShowBagMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; + BagMenuData *bagMenuData = data; BattleItemUse v1; v1.item = 1; - ov16_02265A70(v0->battleSys, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_02265A70(bagMenuData->battleSys, bagMenuData->battler, v1); + BattleController_EmitClearCommand(bagMenuData->battleSys, bagMenuData->battler, bagMenuData->command); - Heap_Free(v0->unk_08->unk_04->party); - Heap_Free(v0->unk_08->unk_04); - Heap_Free(v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx->party); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx); + Heap_Free(bagMenuData->partyMenuData); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02261DA8(SysTask *param0, void *param1) +static void Task_LinkShowBagMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; + BagMenuData *bagMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(bagMenuData->battleSys, bagMenuData->battler, bagMenuData->command); - Heap_Free(v0->unk_08->unk_04->party); - Heap_Free(v0->unk_08->unk_04); - Heap_Free(v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx->party); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx); + Heap_Free(bagMenuData->partyMenuData); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02261DE0(SysTask *param0, void *param1) +static void Task_RecordingShowBagMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; + BagMenuData *bagMenuData = data; BattleItemUse v1; u8 v2; - if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(bagMenuData->battleSys, bagMenuData->battler, &v2) == 1) { + ov16_0226474C(bagMenuData->battleSys); } v1.item = v2; - if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(bagMenuData->battleSys, bagMenuData->battler, &v2) == 1) { + ov16_0226474C(bagMenuData->battleSys); } v1.item |= (v2 << 8); - if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(bagMenuData->battleSys, bagMenuData->battler, &v2) == 1) { + ov16_0226474C(bagMenuData->battleSys); } v1.category = v2 & 0xf; v1.target = (v2 & 0xf0) >> 8; - ov16_02265A70(v0->battleSys, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_02265A70(bagMenuData->battleSys, bagMenuData->battler, v1); + BattleController_EmitClearCommand(bagMenuData->battleSys, bagMenuData->battler, bagMenuData->command); - Heap_Free(v0->unk_08->unk_04->party); - Heap_Free(v0->unk_08->unk_04); - Heap_Free(v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx->party); + Heap_Free(bagMenuData->partyMenuData->battlePartyCtx); + Heap_Free(bagMenuData->partyMenuData); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_02261E8C(SysTask *param0, void *param1) +static void Task_PlayerShowPartyMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; - PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); + PartyMenuData *partyMenuData = data; + PaletteData *v1 = BattleSystem_GetPaletteData(partyMenuData->battleSys); - switch (v0->unk_0A) { + switch (partyMenuData->state) { case 0: { - Window *v2 = BattleSystem_GetWindow(v0->battleSys, 0); + Window *v2 = BattleSystem_GetWindow(partyMenuData->battleSys, 0); Window_FillTilemap(v2, 0xff); Window_LoadTiles(v2); } - v0->unk_17 = ov16_0226CD08(ov16_0223E02C(v0->battleSys)); - sub_02015738(ov16_0223E220(v0->battleSys), 1); + partyMenuData->isCursorEnabled = ov16_0226CD08(ov16_0223E02C(partyMenuData->battleSys)); + sub_02015738(ov16_0223E220(partyMenuData->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 0, 7, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 0, 16, 0x0); - v0->unk_0A++; + partyMenuData->state++; break; case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { @@ -4107,268 +4409,268 @@ static void ov16_02261E8C(SysTask *param0, void *param1) Party *v8; Pokemon *v9, *v10; - ov16_0223B384(v0->battleSys); + ov16_0223B384(partyMenuData->battleSys); - v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); - v0->unk_04->party = Party_New(HEAP_ID_BATTLE); + partyMenuData->battlePartyCtx = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); + partyMenuData->battlePartyCtx->party = Party_New(HEAP_ID_BATTLE); - if (((BattleSystem_GetBattleType(v0->battleSys) & (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) == (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) || (BattleSystem_GetBattleType(v0->battleSys) == ((BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) | BATTLE_TYPE_FRONTIER))) { - if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 2) { - v6 = v0->unk_09; - v7 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); + if (((BattleSystem_GetBattleType(partyMenuData->battleSys) & (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) == (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) || (BattleSystem_GetBattleType(partyMenuData->battleSys) == ((BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) | BATTLE_TYPE_FRONTIER))) { + if (BattleSystem_GetBattlerType(partyMenuData->battleSys, partyMenuData->battler) == 2) { + v6 = partyMenuData->battler; + v7 = BattleSystem_GetPartner(partyMenuData->battleSys, partyMenuData->battler); } else { - v6 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); - v7 = v0->unk_09; + v6 = BattleSystem_GetPartner(partyMenuData->battleSys, partyMenuData->battler); + v7 = partyMenuData->battler; } v9 = Pokemon_New(HEAP_ID_BATTLE); for (i = 0; i < 6; i++) { - Party_AddPokemon(v0->unk_04->party, v9); + Party_AddPokemon(partyMenuData->battlePartyCtx->party, v9); } Heap_Free(v9); - for (i = 0; i < BattleSystem_GetPartyCount(v0->battleSys, v6); i++) { - v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v6, v0->unk_1C[v6][i]); - v10 = Party_GetPokemonBySlotIndex(v0->unk_04->party, i * 2); + for (i = 0; i < BattleSystem_GetPartyCount(partyMenuData->battleSys, v6); i++) { + v9 = BattleSystem_GetPartyPokemon(partyMenuData->battleSys, v6, partyMenuData->partyOrder[v6][i]); + v10 = Party_GetPokemonBySlotIndex(partyMenuData->battlePartyCtx->party, i * 2); Pokemon_Copy(v9, v10); - v0->unk_04->pokemonPartySlots[i * 2] = v0->unk_1C[v6][i]; + partyMenuData->battlePartyCtx->pokemonPartySlots[i * 2] = partyMenuData->partyOrder[v6][i]; } - for (i = 0; i < BattleSystem_GetPartyCount(v0->battleSys, v7); i++) { - v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v7, v0->unk_1C[v7][i]); - v10 = Party_GetPokemonBySlotIndex(v0->unk_04->party, i * 2 + 1); + for (i = 0; i < BattleSystem_GetPartyCount(partyMenuData->battleSys, v7); i++) { + v9 = BattleSystem_GetPartyPokemon(partyMenuData->battleSys, v7, partyMenuData->partyOrder[v7][i]); + v10 = Party_GetPokemonBySlotIndex(partyMenuData->battlePartyCtx->party, i * 2 + 1); Pokemon_Copy(v9, v10); - v0->unk_04->pokemonPartySlots[i * 2 + 1] = v0->unk_1C[v7][i]; + partyMenuData->battlePartyCtx->pokemonPartySlots[i * 2 + 1] = partyMenuData->partyOrder[v7][i]; } - if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 4) { - v0->unk_04->selectedPartyIndex = 1; + if (BattleSystem_GetBattlerType(partyMenuData->battleSys, partyMenuData->battler) == 4) { + partyMenuData->battlePartyCtx->selectedPartyIndex = 1; } else { - v0->unk_04->selectedPartyIndex = 0; + partyMenuData->battlePartyCtx->selectedPartyIndex = 0; } } else { - if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { - v5 = v0->unk_09 & 1; + if ((BattleSystem_GetBattleType(partyMenuData->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(partyMenuData->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { + v5 = partyMenuData->battler & 1; } else { - v5 = v0->unk_09; + v5 = partyMenuData->battler; } - if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 4) { - v0->unk_04->selectedPartyIndex = 1; + if (BattleSystem_GetBattlerType(partyMenuData->battleSys, partyMenuData->battler) == 4) { + partyMenuData->battlePartyCtx->selectedPartyIndex = 1; } else { - v0->unk_04->selectedPartyIndex = 0; + partyMenuData->battlePartyCtx->selectedPartyIndex = 0; } - v8 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); + v8 = BattleSystem_GetParty(partyMenuData->battleSys, partyMenuData->battler); for (i = 0; i < Party_GetCurrentCount(v8); i++) { - v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v5, v0->unk_1C[v5][i]); - Party_AddPokemon(v0->unk_04->party, v9); - v0->unk_04->pokemonPartySlots[i] = v0->unk_1C[v5][i]; + v9 = BattleSystem_GetPartyPokemon(partyMenuData->battleSys, v5, partyMenuData->partyOrder[v5][i]); + Party_AddPokemon(partyMenuData->battlePartyCtx->party, v9); + partyMenuData->battlePartyCtx->pokemonPartySlots[i] = partyMenuData->partyOrder[v5][i]; } } - v0->unk_04->battleSys = v0->battleSys; - v0->unk_04->heapID = HEAP_ID_BATTLE; - v0->unk_04->battlePartyExited = 0; - v0->unk_04->moveToLearn = v0->unk_10; - v0->unk_04->doubleBattleFirstSelectedPartySlot = v0->unk_16; - v0->unk_04->battlePartyMode = v0->unk_0B; - v0->unk_04->selectedBattleBagItem = v0->unk_14; - v0->unk_04->battler = v0->unk_09; - v0->unk_04->isCursorEnabled = v0->unk_17; + partyMenuData->battlePartyCtx->battleSys = partyMenuData->battleSys; + partyMenuData->battlePartyCtx->heapID = HEAP_ID_BATTLE; + partyMenuData->battlePartyCtx->battlePartyExited = 0; + partyMenuData->battlePartyCtx->moveToLearn = partyMenuData->canSwitch; + partyMenuData->battlePartyCtx->doubleBattleFirstSelectedPartySlot = partyMenuData->doublesSelection; + partyMenuData->battlePartyCtx->battlePartyMode = partyMenuData->listMode; + partyMenuData->battlePartyCtx->selectedBattleBagItem = partyMenuData->selectedBattleBagItem; + partyMenuData->battlePartyCtx->battler = partyMenuData->battler; + partyMenuData->battlePartyCtx->isCursorEnabled = partyMenuData->isCursorEnabled; - if ((v0->unk_18 & FlagIndex(v0->unk_09)) == 0) { - v0->unk_04->playerPokemonPartySlot = v0->unk_0C[v0->unk_09]; + if ((partyMenuData->battlersSwitchingMask & FlagIndex(partyMenuData->battler)) == 0) { + partyMenuData->battlePartyCtx->playerPokemonPartySlot = partyMenuData->partySlots[partyMenuData->battler]; } else { - v0->unk_04->playerPokemonPartySlot = 6; + partyMenuData->battlePartyCtx->playerPokemonPartySlot = 6; } - if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) { - v0->unk_04->partnerPokemonPartySlot = 6; - } else if ((v0->unk_18 & FlagIndex(BattleSystem_GetPartner(v0->battleSys, v0->unk_09))) == 0) { - v0->unk_04->partnerPokemonPartySlot = v0->unk_0C[BattleSystem_GetPartner(v0->battleSys, v0->unk_09)]; + if (BattleSystem_GetBattleType(partyMenuData->battleSys) & BATTLE_TYPE_2vs2) { + partyMenuData->battlePartyCtx->partnerPokemonPartySlot = 6; + } else if ((partyMenuData->battlersSwitchingMask & FlagIndex(BattleSystem_GetPartner(partyMenuData->battleSys, partyMenuData->battler))) == 0) { + partyMenuData->battlePartyCtx->partnerPokemonPartySlot = partyMenuData->partySlots[BattleSystem_GetPartner(partyMenuData->battleSys, partyMenuData->battler)]; } else { - v0->unk_04->partnerPokemonPartySlot = 6; + partyMenuData->battlePartyCtx->partnerPokemonPartySlot = 6; } - BattlePartyTask_Start(v0->unk_04); - v0->unk_0A++; + BattlePartyTask_Start(partyMenuData->battlePartyCtx); + partyMenuData->state++; } } break; case 2: - if (v0->unk_04->battlePartyExited) { - ov16_0223B430(v0->battleSys); - ov16_0226CD10(ov16_0223E02C(v0->battleSys), v0->unk_04->isCursorEnabled); + if (partyMenuData->battlePartyCtx->battlePartyExited) { + ov16_0223B430(partyMenuData->battleSys); + ov16_0226CD10(ov16_0223E02C(partyMenuData->battleSys), partyMenuData->battlePartyCtx->isCursorEnabled); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 7, 0, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); - v0->unk_0A++; + partyMenuData->state++; } break; case 3: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - sub_02015738(ov16_0223E220(v0->battleSys), 0); + sub_02015738(ov16_0223E220(partyMenuData->battleSys), 0); - if (v0->unk_04->selectedPartyIndex == 6) { - ov16_02265B10(v0->battleSys, v0->unk_09, 0xff); + if (partyMenuData->battlePartyCtx->selectedPartyIndex == 6) { + ov16_02265B10(partyMenuData->battleSys, partyMenuData->battler, 0xff); } else { - ov16_02265B10(v0->battleSys, v0->unk_09, 1 + v0->unk_04->pokemonPartySlots[v0->unk_04->selectedPartyIndex]); + ov16_02265B10(partyMenuData->battleSys, partyMenuData->battler, 1 + partyMenuData->battlePartyCtx->pokemonPartySlots[partyMenuData->battlePartyCtx->selectedPartyIndex]); } - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(v0->unk_04->party); - Heap_Free(v0->unk_04); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(partyMenuData->battleSys, partyMenuData->battler, partyMenuData->command); + Heap_Free(partyMenuData->battlePartyCtx->party); + Heap_Free(partyMenuData->battlePartyCtx); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void ov16_02262258(SysTask *param0, void *param1) +static void Task_TrainerShowPartyMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; + PartyMenuData *partyMenuData = data; int v1; Party *v2; Pokemon *v3; int v4, v5; - u32 battleType = BattleSystem_GetBattleType(v0->battleSys); - v4 = v0->unk_09; + u32 battleType = BattleSystem_GetBattleType(partyMenuData->battleSys); + v4 = partyMenuData->battler; if ((battleType & BATTLE_TYPE_TAG) || (battleType & BATTLE_TYPE_2vs2)) { v5 = v4; } else { - v5 = BattleSystem_GetPartner(v0->battleSys, v4); + v5 = BattleSystem_GetPartner(partyMenuData->battleSys, v4); } - v1 = BattleAI_SwitchedSlot(v0->battleSys, v4); + v1 = BattleAI_SwitchedSlot(partyMenuData->battleSys, v4); if (v1 == 6) { - v1 = BattleAI_PostKOSwitchIn(v0->battleSys, v4); + v1 = BattleAI_PostKOSwitchIn(partyMenuData->battleSys, v4); if (v1 == 6) { - v2 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); + v2 = BattleSystem_GetParty(partyMenuData->battleSys, partyMenuData->battler); for (v1 = 0; v1 < Party_GetCurrentCount(v2); v1++) { - v3 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_09, v1); + v3 = BattleSystem_GetPartyPokemon(partyMenuData->battleSys, partyMenuData->battler, v1); - if ((Pokemon_GetValue(v3, MON_DATA_HP, NULL)) && (v0->unk_0C[v4] != v1) && (v0->unk_0C[v5] != v1)) { + if ((Pokemon_GetValue(v3, MON_DATA_HP, NULL)) && (partyMenuData->partySlots[v4] != v1) && (partyMenuData->partySlots[v5] != v1)) { break; } } } } - ov16_02265B10(v0->battleSys, v0->unk_09, 1 + v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + ov16_02265B10(partyMenuData->battleSys, partyMenuData->battler, 1 + v1); + BattleController_EmitClearCommand(partyMenuData->battleSys, partyMenuData->battler, partyMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_0226230C(SysTask *param0, void *param1) +static void Task_LinkShowPartyMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; + PartyMenuData *partyMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(partyMenuData->battleSys, partyMenuData->battler, partyMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_0226232C(SysTask *param0, void *param1) +static void Task_RecordingShowPartyMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; + PartyMenuData *partyMenuData = data; u8 v1; - if (ov16_0223F530(v0->battleSys, v0->unk_09, &v1) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(partyMenuData->battleSys, partyMenuData->battler, &v1) == 1) { + ov16_0226474C(partyMenuData->battleSys); } if ((!v1) || (v1 > 6)) { - ov16_02264730(v0->battleSys); + ov16_02264730(partyMenuData->battleSys); } else { { Party *v2; Pokemon *v3; int v4 = v1 - 1; - v2 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); + v2 = BattleSystem_GetParty(partyMenuData->battleSys, partyMenuData->battler); - if ((v4 == v0->unk_0C[v0->unk_09]) || (v4 == v0->unk_16)) { - ov16_02264730(v0->battleSys); + if ((v4 == partyMenuData->partySlots[partyMenuData->battler]) || (v4 == partyMenuData->doublesSelection)) { + ov16_02264730(partyMenuData->battleSys); } else if (v1 > Party_GetCurrentCount(v2)) { - ov16_02264730(v0->battleSys); + ov16_02264730(partyMenuData->battleSys); } else { - v3 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_09, v1 - 1); + v3 = BattleSystem_GetPartyPokemon(partyMenuData->battleSys, partyMenuData->battler, v1 - 1); if (Pokemon_GetValue(v3, MON_DATA_HP, NULL) == 0) { - ov16_02264730(v0->battleSys); + ov16_02264730(partyMenuData->battleSys); } if (Pokemon_GetValue(v3, MON_DATA_SPECIES_OR_EGG, NULL) == SPECIES_EGG) { - ov16_02264730(v0->battleSys); + ov16_02264730(partyMenuData->battleSys); } } } } - ov16_02265B10(v0->battleSys, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + ov16_02265B10(partyMenuData->battleSys, partyMenuData->battler, v1); + BattleController_EmitClearCommand(partyMenuData->battleSys, partyMenuData->battler, partyMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_022623F0(SysTask *param0, void *param1) +static void Task_PlayerShowYesNoMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D8AC *v0 = param1; - BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); - UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(v0->battleSys); + YesNoMenuData *yesNoMenuData = data; + BgConfig *v1 = BattleSystem_GetBgConfig(yesNoMenuData->battleSys); + UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(yesNoMenuData->battleSys); int v3; Healthbar *healthbar; - BattlerData *battlerData = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D); - v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_0D); + BattlerData *battlerData = BattleSystem_GetBattlerData(yesNoMenuData->battleSys, yesNoMenuData->battler); + v3 = BattleSystem_GetPartner(yesNoMenuData->battleSys, yesNoMenuData->battler); - if (v3 != v0->unk_0D) { - healthbar = BattleSystem_GetHealthbar(v0->battleSys, v3); + if (v3 != yesNoMenuData->battler) { + healthbar = BattleSystem_GetHealthbar(yesNoMenuData->battleSys, v3); } else { healthbar = NULL; } - switch (v0->unk_0E) { + switch (yesNoMenuData->state) { case 0: if (ov16_02269348(v2) == 0) { break; } - if (v0->unk_10) { + if (yesNoMenuData->promptMsg) { { Window *v6; MessageLoader *v7; BattleMessage v8; - v7 = BattleSystem_GetMessageLoader(v0->battleSys); + v7 = BattleSystem_GetMessageLoader(yesNoMenuData->battleSys); - if (v0->unk_0F == 5) { + if (yesNoMenuData->yesNoType == 5) { v8.tags = 2 | 0x80; - v8.params[0] = v0->unk_14; + v8.params[0] = yesNoMenuData->nickname; } else { v8.tags = 0; } - v8.id = v0->unk_10; - v0->unk_1A = BattleMessage_Print(v0->battleSys, v7, &v8, BattleSystem_GetTextSpeed(v0->battleSys)); + v8.id = yesNoMenuData->promptMsg; + yesNoMenuData->msgIdx = BattleMessage_Print(yesNoMenuData->battleSys, v7, &v8, BattleSystem_GetTextSpeed(yesNoMenuData->battleSys)); } } - v0->unk_0E = 1; + yesNoMenuData->state = 1; break; case 1: - if ((Text_IsPrinterActive(v0->unk_1A) == 0) || (v0->unk_10 == NULL)) { + if ((Text_IsPrinterActive(yesNoMenuData->msgIdx) == 0) || (yesNoMenuData->promptMsg == NULL)) { { NARC *v9 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); NARC *v10 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); @@ -4376,9 +4678,9 @@ static void ov16_022623F0(SysTask *param0, void *param1) ov16_02269218(v2); - v11.unk_00 = v0->unk_18; + v11.unk_00 = yesNoMenuData->move; - switch (v0->unk_0F) { + switch (yesNoMenuData->yesNoType) { case 0: case 5: ov16_02268C04(v9, v10, v2, 13, 0, &v11); @@ -4400,7 +4702,7 @@ static void ov16_022623F0(SysTask *param0, void *param1) break; } - v0->unk_0E = 2; + yesNoMenuData->state = 2; NARC_dtor(v9); NARC_dtor(v10); @@ -4408,11 +4710,11 @@ static void ov16_022623F0(SysTask *param0, void *param1) } break; case 2: - v0->unk_08 = BattleSystem_MenuInput(v2); + yesNoMenuData->input = BattleSystem_MenuInput(v2); - if (v0->unk_08 != 0xffffffff) { + if (yesNoMenuData->input != 0xffffffff) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); - v0->unk_0E = 3; + yesNoMenuData->state = 3; } break; case 3: @@ -4421,17 +4723,17 @@ static void ov16_022623F0(SysTask *param0, void *param1) NARC *v12 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); NARC *v13 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); - ov16_022675AC(v0->unk_04); + ov16_022675AC(yesNoMenuData->healthbar); ov16_022647D8(battlerData); ov16_0226846C(healthbar); ov16_02269218(v2); ov16_02268C04(v12, v13, v2, 0, 0, NULL); - if (v0->unk_08 == 1) { + if (yesNoMenuData->input == 1) { ov16_0226BCCC(v2, 0); } - v0->unk_0E = 4; + yesNoMenuData->state = 4; NARC_dtor(v12); NARC_dtor(v13); @@ -4440,183 +4742,183 @@ static void ov16_022623F0(SysTask *param0, void *param1) break; case 4: if (ov16_0226BCD0(v2) == 1) { - ov16_022656D4(v0->battleSys, v0->unk_0D, v0->unk_08); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); - Heap_Free(param1); - SysTask_Done(param0); + ov16_022656D4(yesNoMenuData->battleSys, yesNoMenuData->battler, yesNoMenuData->input); + BattleController_EmitClearCommand(yesNoMenuData->battleSys, yesNoMenuData->battler, yesNoMenuData->command); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void ov16_0226262C(SysTask *param0, void *param1) +static void Task_TrainerShowYesNoMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; + YesNoMenuData *yesNoMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(yesNoMenuData->battleSys, yesNoMenuData->battler, yesNoMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_0226264C(SysTask *param0, void *param1) +static void Task_LinkShowYesNoMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; + YesNoMenuData *yesNoMenuData = data; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(yesNoMenuData->battleSys, yesNoMenuData->battler, yesNoMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_0226266C(SysTask *param0, void *param1) +static void Task_RecordingShowYesNoMenu(SysTask *task, void *data) { - UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; + YesNoMenuData *yesNoMenuData = data; u8 v1; - if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v1) == 1) { - ov16_0226474C(v0->battleSys); + if (ov16_0223F530(yesNoMenuData->battleSys, yesNoMenuData->battler, &v1) == 1) { + ov16_0226474C(yesNoMenuData->battleSys); } if ((!v1) || ((v1 != 0xff) && (v1 != 1))) { - ov16_02264730(v0->battleSys); + ov16_02264730(yesNoMenuData->battleSys); } - ov16_022656D4(v0->battleSys, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov16_022656D4(yesNoMenuData->battleSys, yesNoMenuData->battler, v1); + BattleController_EmitClearCommand(yesNoMenuData->battleSys, yesNoMenuData->battler, yesNoMenuData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -static void ov16_022626C0(SysTask *param0, void *param1) +static void Task_SetMoveAnimation(SysTask *task, void *data) { - UnkStruct_ov16_0225D9A8 *v0 = (UnkStruct_ov16_0225D9A8 *)param1; + SetMoveAnimationData *setMoveAnimationData = data; - switch (v0->unk_6A) { + switch (setMoveAnimationData->state) { case 0: - if ((v0->unk_10.isSubstitute) && (v0->unk_10.unk_4C == 0) && (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_HIDE) == 0)) { + if ((setMoveAnimationData->moveAnim.isSubstitute) && (setMoveAnimationData->moveAnim.unk_4C == 0) && (PokemonSprite_GetAttribute(setMoveAnimationData->monSprite, MON_SPRITE_HIDE) == 0)) { { MoveAnimation v1; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v1, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_0C, &v1); + BattleController_SetMoveAnimation(setMoveAnimationData->battleSys, NULL, &v1, 1, 15, setMoveAnimationData->battler, setMoveAnimationData->battler, NULL); + ov16_02264408(setMoveAnimationData->battleSys, setMoveAnimationData->battlerData, setMoveAnimationData->battleAnimSys, &v1); } - v0->unk_6A = 1; + setMoveAnimationData->state = 1; } else { - v0->unk_6A = 4; + setMoveAnimationData->state = 4; } break; case 2: { UnkStruct_ov12_022380DC v2; MoveAnimation v3; - ov16_02264530(v0->battleSys, &v0->unk_10, &v2, v0->unk_69); + ov16_02264530(setMoveAnimationData->battleSys, &setMoveAnimationData->moveAnim, &v2, setMoveAnimationData->battler); ov12_022382BC(&v2, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v3, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_0C, &v3); - v0->battlerData->unk_19C = 0; + BattleController_SetMoveAnimation(setMoveAnimationData->battleSys, NULL, &v3, 1, 16, setMoveAnimationData->battler, setMoveAnimationData->battler, NULL); + ov16_02264408(setMoveAnimationData->battleSys, setMoveAnimationData->battlerData, setMoveAnimationData->battleAnimSys, &v3); + setMoveAnimationData->battlerData->unk_19C = 0; } - v0->unk_6A++; + setMoveAnimationData->state++; break; case 4: - BattleSystem_SetRedHPSoundFlag(v0->battleSys, 2); + BattleSystem_SetRedHPSoundFlag(setMoveAnimationData->battleSys, 2); - if (v0->unk_6B) { - ov16_0223F3EC(v0->battleSys); + if (setMoveAnimationData->unk_6B) { + ov16_0223F3EC(setMoveAnimationData->battleSys); } - if (v0->unk_6C) { - PokemonSpriteManager_HideShadows(BattleSystem_GetPokemonSpriteManager(v0->battleSys)); + if (setMoveAnimationData->unk_6C) { + PokemonSpriteManager_HideShadows(BattleSystem_GetPokemonSpriteManager(setMoveAnimationData->battleSys)); } - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_0C, &v0->unk_10); - v0->unk_6A++; + ov16_02264408(setMoveAnimationData->battleSys, setMoveAnimationData->battlerData, setMoveAnimationData->battleAnimSys, &setMoveAnimationData->moveAnim); + setMoveAnimationData->state++; break; case 6: - BattleSystem_SetRedHPSoundFlag(v0->battleSys, 0); + BattleSystem_SetRedHPSoundFlag(setMoveAnimationData->battleSys, 0); - if (v0->unk_6B) { - ov16_0223F3BC(v0->battleSys); + if (setMoveAnimationData->unk_6B) { + ov16_0223F3BC(setMoveAnimationData->battleSys); } - if (v0->unk_6C) { - PokemonSpriteManager_ShowShadows(BattleSystem_GetPokemonSpriteManager(v0->battleSys)); + if (setMoveAnimationData->unk_6C) { + PokemonSpriteManager_ShowShadows(BattleSystem_GetPokemonSpriteManager(setMoveAnimationData->battleSys)); } - if ((v0->unk_10.isSubstitute) && (v0->unk_10.unk_4C == 0) && (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_HIDE) == 0)) { + if ((setMoveAnimationData->moveAnim.isSubstitute) && (setMoveAnimationData->moveAnim.unk_4C == 0) && (PokemonSprite_GetAttribute(setMoveAnimationData->monSprite, MON_SPRITE_HIDE) == 0)) { { MoveAnimation v4; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_0C, &v4); + BattleController_SetMoveAnimation(setMoveAnimationData->battleSys, NULL, &v4, 1, 15, setMoveAnimationData->battler, setMoveAnimationData->battler, NULL); + ov16_02264408(setMoveAnimationData->battleSys, setMoveAnimationData->battlerData, setMoveAnimationData->battleAnimSys, &v4); } - v0->unk_6A = 7; + setMoveAnimationData->state = 7; } else { - v0->unk_6A = 10; + setMoveAnimationData->state = 10; } break; case 8: { UnkStruct_ov12_022380DC v5; MoveAnimation v6; - ov16_02264530(v0->battleSys, &v0->unk_10, &v5, v0->unk_69); + ov16_02264530(setMoveAnimationData->battleSys, &setMoveAnimationData->moveAnim, &v5, setMoveAnimationData->battler); ov12_02238390(&v5, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v0->unk_0C, &v6); - v0->battlerData->unk_19C = 1; + BattleController_SetMoveAnimation(setMoveAnimationData->battleSys, NULL, &v6, 1, 16, setMoveAnimationData->battler, setMoveAnimationData->battler, NULL); + ov16_02264408(setMoveAnimationData->battleSys, setMoveAnimationData->battlerData, setMoveAnimationData->battleAnimSys, &v6); + setMoveAnimationData->battlerData->unk_19C = 1; } - v0->unk_6A++; + setMoveAnimationData->state++; break; case 10: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_69, v0->unk_68); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(setMoveAnimationData->battleSys, setMoveAnimationData->battler, setMoveAnimationData->command); + Heap_Free(data); + SysTask_Done(task); break; case 1: case 3: case 5: case 7: case 9: - BattleAnimSystem_ExecuteScript(v0->unk_0C); + BattleAnimSystem_ExecuteScript(setMoveAnimationData->battleAnimSys); - if (BattleAnimSystem_IsMoveActive(v0->unk_0C) == 0) { - BattleAnimSystem_FreeScriptData(v0->unk_0C); - v0->unk_6A++; + if (BattleAnimSystem_IsMoveActive(setMoveAnimationData->battleAnimSys) == 0) { + BattleAnimSystem_FreeScriptData(setMoveAnimationData->battleAnimSys); + setMoveAnimationData->state++; } break; } } -static void ov16_0226292C(SysTask *param0, void *param1) +static void Task_FlickerBattler(SysTask *task, void *data) { - UnkStruct_ov16_0225DA44 *v0 = (UnkStruct_ov16_0225DA44 *)param1; - int v1; + FlickerBattlerData *flickerBattlerData = data; + int hide; - if (v0->unk_09 < 6) { - if (v0->unk_0A == 0) { - v0->unk_0A = 2; - v0->unk_09++; - v1 = PokemonSprite_GetAttribute(v0->unk_04, MON_SPRITE_HIDE); - v1 ^= 1; - PokemonSprite_SetAttribute(v0->unk_04, MON_SPRITE_HIDE, v1); + if (flickerBattlerData->counter < 6) { + if (flickerBattlerData->delay == 0) { + flickerBattlerData->delay = 2; + flickerBattlerData->counter++; + hide = PokemonSprite_GetAttribute(flickerBattlerData->monSprite, MON_SPRITE_HIDE); + hide ^= 1; + PokemonSprite_SetAttribute(flickerBattlerData->monSprite, MON_SPRITE_HIDE, hide); } else { - v0->unk_0A--; + flickerBattlerData->delay--; } } else { - v1 = 0; - PokemonSprite_SetAttribute(v0->unk_04, MON_SPRITE_HIDE, v1); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_08, 23); - Heap_Free(param1); - SysTask_Done(param0); + hide = FALSE; + PokemonSprite_SetAttribute(flickerBattlerData->monSprite, MON_SPRITE_HIDE, hide); + BattleController_EmitClearCommand(flickerBattlerData->battleSys, flickerBattlerData->battler, BATTLE_COMMAND_FLICKER_BATTLER); + Heap_Free(data); + SysTask_Done(task); } } -static void ov16_02262988(SysTask *param0, void *param1) +static void Task_UpdateHPGauge(SysTask *task, void *data) { - Healthbar *healthbar = param1; + Healthbar *healthbar = data; int v1; switch (healthbar->state) { @@ -4633,14 +4935,14 @@ static void ov16_02262988(SysTask *param0, void *param1) default: BattleController_EmitClearCommand(healthbar->battleSys, healthbar->battler, healthbar->command); healthbar->task_10 = NULL; - SysTask_Done(param0); + SysTask_Done(task); return; } } -static void ov16_022629DC(SysTask *param0, void *param1) +static void Task_UpdateExpGauge(SysTask *task, void *data) { - Healthbar *healthbar = param1; + Healthbar *healthbar = data; int v1; switch (healthbar->state) { @@ -4676,44 +4978,44 @@ static void ov16_022629DC(SysTask *param0, void *param1) default: BattleController_EmitClearCommand(healthbar->battleSys, healthbar->battler, healthbar->command); healthbar->task_10 = NULL; - SysTask_Done(param0); + SysTask_Done(task); break; } } -static void ov16_02262A9C(SysTask *param0, void *param1) +static void Task_PlayFaintingSequence(SysTask *task, void *data) { - UnkStruct_ov16_0225DB74 *v0 = (UnkStruct_ov16_0225DB74 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + FaintingSequenceData *faintingSequenceData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(faintingSequenceData->battleSys); int v2; int v3; - switch (v0->unk_66) { + switch (faintingSequenceData->state) { case 0: - if (v0->unk_70) { + if (faintingSequenceData->isSubstitute) { { MoveAnimation v4; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 15, v0->unk_65, v0->unk_65, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v4); + BattleController_SetMoveAnimation(faintingSequenceData->battleSys, NULL, &v4, 1, 15, faintingSequenceData->battler, faintingSequenceData->battler, NULL); + ov16_02264408(faintingSequenceData->battleSys, faintingSequenceData->battlerData, v1, &v4); } - v0->unk_66++; + faintingSequenceData->state++; } else { - v0->unk_66 = 4; + faintingSequenceData->state = 4; } break; case 2: { UnkStruct_ov12_022380DC v5; MoveAnimation v6; - ov16_02264530(v0->battleSys, &v0->unk_0C, &v5, v0->unk_65); + ov16_02264530(faintingSequenceData->battleSys, &faintingSequenceData->moveAnim, &v5, faintingSequenceData->battler); ov12_022382BC(&v5, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 16, v0->unk_65, v0->unk_65, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v6); - v0->battlerData->unk_19C = 0; + BattleController_SetMoveAnimation(faintingSequenceData->battleSys, NULL, &v6, 1, 16, faintingSequenceData->battler, faintingSequenceData->battler, NULL); + ov16_02264408(faintingSequenceData->battleSys, faintingSequenceData->battlerData, v1, &v6); + faintingSequenceData->battlerData->unk_19C = 0; } - v0->unk_66++; + faintingSequenceData->state++; break; case 1: case 3: @@ -4721,156 +5023,156 @@ static void ov16_02262A9C(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_66++; + faintingSequenceData->state++; } break; case 4: { int v7; - if (v0->unk_67 == 2) { + if (faintingSequenceData->face == 2) { v7 = 117; } else { v7 = -117; } - Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_65), 5, v0->unk_68, v0->unk_6B, v7, 127, v0->unk_72, 5, 0); - v0->unk_66++; + Species_PlayDelayedCry(BattleSystem_GetChatotCry(faintingSequenceData->battleSys, faintingSequenceData->battler), 5, faintingSequenceData->species, faintingSequenceData->form, v7, 127, faintingSequenceData->isTransformed, 5, 0); + faintingSequenceData->state++; } case 5: if (Sound_IsPokemonCryPlaying() == 0) { - v0->unk_66++; + faintingSequenceData->state++; } break; case 6: - if (v0->unk_67 == 2) { + if (faintingSequenceData->face == 2) { Sound_PlayPannedEffect(SEQ_SE_DP_POKE_DEAD3, 117); } else { Sound_PlayPannedEffect(SEQ_SE_DP_POKE_DEAD3, -117); } - if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_SHADOW_HEIGHT) > 0) { - v0->unk_66 = 7; + if (PokemonSprite_GetAttribute(faintingSequenceData->monSprite, MON_SPRITE_SHADOW_HEIGHT) > 0) { + faintingSequenceData->state = 7; } else { - v0->unk_66 = 8; + faintingSequenceData->state = 8; } break; case 7: - v3 = PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_SHADOW_HEIGHT); + v3 = PokemonSprite_GetAttribute(faintingSequenceData->monSprite, MON_SPRITE_SHADOW_HEIGHT); v3 -= 8; if (v3 < 0) { v3 = 0; } - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_HEIGHT, v3); + PokemonSprite_SetAttribute(faintingSequenceData->monSprite, MON_SPRITE_SHADOW_HEIGHT, v3); if (v3) { break; } - v0->unk_66++; + faintingSequenceData->state++; case 8: - v3 = LoadPokemonSpriteYOffset(v0->unk_68, v0->unk_6A, v0->unk_67, v0->unk_6B, v0->unk_6C); + v3 = LoadPokemonSpriteYOffset(faintingSequenceData->species, faintingSequenceData->gender, faintingSequenceData->face, faintingSequenceData->form, faintingSequenceData->personality); v3 = 80 - v3; - PokemonSprite_SetPartialDraw(v0->unk_08, 0, 0, 80, v3); - v0->unk_66++; + PokemonSprite_SetPartialDraw(faintingSequenceData->monSprite, 0, 0, 80, v3); + faintingSequenceData->state++; break; case 9: - v2 = PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_Y_CENTER); + v2 = PokemonSprite_GetAttribute(faintingSequenceData->monSprite, MON_SPRITE_Y_CENTER); v2 += 8; - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_Y_CENTER, v2); - v3 = PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_DRAW_HEIGHT); + PokemonSprite_SetAttribute(faintingSequenceData->monSprite, MON_SPRITE_Y_CENTER, v2); + v3 = PokemonSprite_GetAttribute(faintingSequenceData->monSprite, MON_SPRITE_DRAW_HEIGHT); v3 -= 8; if (v3 < 0) { v3 = 0; } - PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_DRAW_HEIGHT, v3); + PokemonSprite_SetAttribute(faintingSequenceData->monSprite, MON_SPRITE_DRAW_HEIGHT, v3); if (v3 == 0) { - PokemonSprite_Delete(v0->unk_08); - v0->unk_66++; + PokemonSprite_Delete(faintingSequenceData->monSprite); + faintingSequenceData->state++; } break; case 10: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_65, v0->unk_64); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(faintingSequenceData->battleSys, faintingSequenceData->battler, faintingSequenceData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02262D28(SysTask *param0, void *param1) +static void Task_FadeOut(SysTask *task, void *data) { - UnkStruct_ov16_0225DC7C *v0 = (UnkStruct_ov16_0225DC7C *)param1; - PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); - PokemonSpriteManager *v2 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); + FadeOutData *fadeOutData = data; + PaletteData *v1 = BattleSystem_GetPaletteData(fadeOutData->battleSys); + PokemonSpriteManager *v2 = BattleSystem_GetPokemonSpriteManager(fadeOutData->battleSys); - switch (v0->unk_06) { + switch (fadeOutData->state) { case 0: - sub_02015738(ov16_0223E220(v0->battleSys), 1); + sub_02015738(ov16_0223E220(fadeOutData->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x2 | 0x4 | 0x8, 0xffff, 1, 0, 16, 0x0); PokemonSpriteManager_StartFadeAll(v2, 0, 16, 0, 0x0); Sound_FadeOutBGM(0, 16); - v0->unk_06++; + fadeOutData->state++; case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - v0->unk_06++; + fadeOutData->state++; } break; case 2: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_05, v0->unk_04); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(fadeOutData->battleSys, fadeOutData->battler, fadeOutData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02262DC4(SysTask *param0, void *param1) +static void Task_ToggleVanish(SysTask *task, void *data) { - UnkStruct_ov16_0225DCB0 *v0 = (UnkStruct_ov16_0225DCB0 *)param1; - BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); + ToggleVanishData *toggleVanishData = data; + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(toggleVanishData->battleSys); - switch (v0->unk_62) { + switch (toggleVanishData->state) { case 0: - if (v0->battlerData->monSprite) { - PokemonSprite_SetAttribute(v0->battlerData->monSprite, MON_SPRITE_HIDE, v0->unk_63); + if (toggleVanishData->battlerData->monSprite) { + PokemonSprite_SetAttribute(toggleVanishData->battlerData->monSprite, MON_SPRITE_HIDE, toggleVanishData->toggleHide); - if (v0->unk_63 == 1) { - v0->unk_62 = 0xff; + if (toggleVanishData->toggleHide == 1) { + toggleVanishData->state = 0xff; } else { - v0->unk_62++; + toggleVanishData->state++; } } else { - v0->unk_62 = 0xff; + toggleVanishData->state = 0xff; } break; case 1: - if ((v0->unk_64) && (v0->battlerData->unk_19C == 0)) { + if ((toggleVanishData->isSubstitute) && (toggleVanishData->battlerData->unk_19C == 0)) { { MoveAnimation v2; - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v2, 1, 15, v0->unk_61, v0->unk_61, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v2); + BattleController_SetMoveAnimation(toggleVanishData->battleSys, NULL, &v2, 1, 15, toggleVanishData->battler, toggleVanishData->battler, NULL); + ov16_02264408(toggleVanishData->battleSys, toggleVanishData->battlerData, v1, &v2); } - v0->unk_62++; + toggleVanishData->state++; } else { - v0->unk_62 = 0xff; + toggleVanishData->state = 0xff; } break; case 3: { UnkStruct_ov12_022380DC v3; MoveAnimation v4; - ov16_02264530(v0->battleSys, &v0->unk_08, &v3, v0->unk_61); + ov16_02264530(toggleVanishData->battleSys, &toggleVanishData->moveAnim, &v3, toggleVanishData->battler); ov12_02238390(&v3, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 16, v0->unk_61, v0->unk_61, NULL); - ov16_02264408(v0->battleSys, v0->battlerData, v1, &v4); - v0->battlerData->unk_19C = 1; + BattleController_SetMoveAnimation(toggleVanishData->battleSys, NULL, &v4, 1, 16, toggleVanishData->battler, toggleVanishData->battler, NULL); + ov16_02264408(toggleVanishData->battleSys, toggleVanishData->battlerData, v1, &v4); + toggleVanishData->battlerData->unk_19C = 1; } - v0->unk_62++; + toggleVanishData->state++; break; case 2: case 4: @@ -4878,38 +5180,38 @@ static void ov16_02262DC4(SysTask *param0, void *param1) if (BattleAnimSystem_IsMoveActive(v1) == 0) { BattleAnimSystem_FreeScriptData(v1); - v0->unk_62++; + toggleVanishData->state++; } break; default: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_61, v0->unk_60); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(toggleVanishData->battleSys, toggleVanishData->battler, toggleVanishData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02262F30(SysTask *param0, void *param1) +static void Task_PlayLevelUpAnimation(SysTask *task, void *data) { - UnkStruct_ov16_0225DF34 *v0 = (UnkStruct_ov16_0225DF34 *)param1; + PlayLevelUpAnimationData *playLevelUpAnimationData = data; - switch (v0->unk_0A) { + switch (playLevelUpAnimationData->state) { case 0: - ov16_0226834C(v0->unk_04, &v0->unk_0B); + ov16_0226834C(playLevelUpAnimationData->healthbar, &playLevelUpAnimationData->unk_0B); Sound_PlayEffect(SEQ_SE_DP_EXPMAX); - v0->unk_0A++; + playLevelUpAnimationData->state++; break; case 1: - if (v0->unk_0B == 1) { - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + if (playLevelUpAnimationData->unk_0B == 1) { + BattleController_EmitClearCommand(playLevelUpAnimationData->battleSys, playLevelUpAnimationData->battler, playLevelUpAnimationData->command); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void WaitForBattleMessagePrint(SysTask *task, void *data) +static void Task_WaitForBattleMessagePrint(SysTask *task, void *data) { BattleMessageWaitTask *waitTask = data; @@ -4925,23 +5227,23 @@ static void WaitForBattleMessagePrint(SysTask *task, void *data) } } -static void ov16_02262FC0(SysTask *param0, void *param1) +static void Task_WaitForAlertMessagePrint(SysTask *task, void *data) { - UnkStruct_ov16_0225DF6C *v0 = (UnkStruct_ov16_0225DF6C *)param1; + AlertMsgData *alertMsgData = data; - switch (v0->unk_07) { + switch (alertMsgData->state) { case 0: - if (Text_IsPrinterActive(v0->unk_06) == 0) { - v0->unk_07++; - v0->unk_08 = 0; + if (Text_IsPrinterActive(alertMsgData->msgIdx) == 0) { + alertMsgData->state++; + alertMsgData->delay = 0; } break; case 1: - if (++v0->unk_08 == 40) { - ov16_022661B0(v0->battleSys, v0->unk_05); - BattleController_EmitClearCommand(v0->battleSys, v0->unk_05, v0->unk_04); - Heap_Free(param1); - SysTask_Done(param0); + if (++alertMsgData->delay == 40) { + ov16_022661B0(alertMsgData->battleSys, alertMsgData->battler); + BattleController_EmitClearCommand(alertMsgData->battleSys, alertMsgData->battler, alertMsgData->command); + Heap_Free(data); + SysTask_Done(task); } break; } @@ -5000,9 +5302,9 @@ static const int Unk_ov16_0226F1D0[] = { 0x7FFF }; -static void ov16_02263014(SysTask *param0, void *param1) +static void ov16_02263014(SysTask *task, void *data) { - UnkStruct_ov16_0225CBB8 *v0 = (UnkStruct_ov16_0225CBB8 *)param1; + UnkStruct_ov16_0225CBB8 *v0 = (UnkStruct_ov16_0225CBB8 *)data; BgConfig *v1; PaletteData *v2; int v3; @@ -5101,8 +5403,8 @@ static void ov16_02263014(SysTask *param0, void *param1) break; case 3: sub_02015738(ov16_0223E220(v0->battleSys), 0); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); break; case 4: ov12_02237F98(v0->unk_04); @@ -5129,99 +5431,99 @@ static void ov16_02263014(SysTask *param0, void *param1) } } -static void ov16_022633A4(SysTask *param0, void *param1) +static void Task_ForgetMove(SysTask *task, void *data) { - UnkStruct_ov16_0225E0BC *v0 = (UnkStruct_ov16_0225E0BC *)param1; - PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); + ForgetMoveData *forgetMoveData = data; + PaletteData *v1 = BattleSystem_GetPaletteData(forgetMoveData->battleSys); - switch (v0->unk_0A) { + switch (forgetMoveData->state) { case 0: PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 0, 16, 0x0); - v0->unk_0A++; + forgetMoveData->state++; break; case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - ov16_0223B384(v0->battleSys); + ov16_0223B384(forgetMoveData->battleSys); - v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); - v0->unk_04->party = BattleSystem_GetParty(v0->battleSys, v0->unk_09); - v0->unk_04->battleSys = v0->battleSys; - v0->unk_04->heapID = HEAP_ID_BATTLE; - v0->unk_04->selectedPartyIndex = v0->unk_0E; - v0->unk_04->moveToLearn = v0->unk_0C; - v0->unk_04->battlePartyExited = 0; - v0->unk_04->doubleBattleFirstSelectedPartySlot = 0; - v0->unk_04->battlePartyMode = BATTLE_PARTY_MODE_LEARN_MOVE; - v0->unk_04->selectedBattleBagItem = 0; - v0->unk_04->battler = v0->unk_09; - v0->unk_04->isCursorEnabled = 0; + forgetMoveData->battlePartyCtx = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); + forgetMoveData->battlePartyCtx->party = BattleSystem_GetParty(forgetMoveData->battleSys, forgetMoveData->battler); + forgetMoveData->battlePartyCtx->battleSys = forgetMoveData->battleSys; + forgetMoveData->battlePartyCtx->heapID = HEAP_ID_BATTLE; + forgetMoveData->battlePartyCtx->selectedPartyIndex = forgetMoveData->slot; + forgetMoveData->battlePartyCtx->moveToLearn = forgetMoveData->move; + forgetMoveData->battlePartyCtx->battlePartyExited = 0; + forgetMoveData->battlePartyCtx->doubleBattleFirstSelectedPartySlot = 0; + forgetMoveData->battlePartyCtx->battlePartyMode = BATTLE_PARTY_MODE_LEARN_MOVE; + forgetMoveData->battlePartyCtx->selectedBattleBagItem = 0; + forgetMoveData->battlePartyCtx->battler = forgetMoveData->battler; + forgetMoveData->battlePartyCtx->isCursorEnabled = 0; - BattlePartyTask_Start(v0->unk_04); - v0->unk_0A++; + BattlePartyTask_Start(forgetMoveData->battlePartyCtx); + forgetMoveData->state++; } break; case 2: - if (v0->unk_04->battlePartyExited) { - ov16_0223B430(v0->battleSys); + if (forgetMoveData->battlePartyCtx->battlePartyExited) { + ov16_0223B430(forgetMoveData->battleSys); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); - v0->unk_0A++; + forgetMoveData->state++; } break; case 3: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - if (v0->unk_04->selectedMoveSlot == 4) { - ov16_02265B10(v0->battleSys, v0->unk_09, 0xff); + if (forgetMoveData->battlePartyCtx->selectedMoveSlot == 4) { + ov16_02265B10(forgetMoveData->battleSys, forgetMoveData->battler, 0xff); } else { - ov16_02265B10(v0->battleSys, v0->unk_09, v0->unk_04->selectedMoveSlot + 1); + ov16_02265B10(forgetMoveData->battleSys, forgetMoveData->battler, forgetMoveData->battlePartyCtx->selectedMoveSlot + 1); } - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(forgetMoveData->battleSys, forgetMoveData->battler, forgetMoveData->command); - Heap_Free(v0->unk_04); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(forgetMoveData->battlePartyCtx); + Heap_Free(data); + SysTask_Done(task); } break; } } -static void ov16_022634DC(SysTask *param0, void *param1) +static void Task_SetMosaic(SysTask *task, void *data) { - UnkStruct_ov16_0225E0F4 *v0 = (UnkStruct_ov16_0225E0F4 *)param1; + SetMosaicData *setMosaicData = data; int v1; - switch (v0->unk_0A) { + switch (setMosaicData->state) { case 0: - if (v0->unk_0C == v0->unk_0D) { - v0->unk_0C = 0; - v1 = PokemonSprite_GetAttribute(v0->unk_04, MON_SPRITE_MOSAIC_INTENSITY); + if (setMosaicData->counter == setMosaicData->wait) { + setMosaicData->counter = 0; + v1 = PokemonSprite_GetAttribute(setMosaicData->monSprite, MON_SPRITE_MOSAIC_INTENSITY); - if (v1 > v0->unk_0B) { + if (v1 > setMosaicData->intensity) { v1--; - } else if (v1 < v0->unk_0B) { + } else if (v1 < setMosaicData->intensity) { v1++; } - PokemonSprite_SetAttribute(v0->unk_04, MON_SPRITE_MOSAIC_INTENSITY, v1); + PokemonSprite_SetAttribute(setMosaicData->monSprite, MON_SPRITE_MOSAIC_INTENSITY, v1); - if (v1 == v0->unk_0B) { - v0->unk_0A++; + if (v1 == setMosaicData->intensity) { + setMosaicData->state++; } } else { - v0->unk_0C++; + setMosaicData->counter++; } break; case 1: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(setMosaicData->battleSys, setMosaicData->battler, setMosaicData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ShowPartyGaugeTask(SysTask *param0, void *param1) +static void Task_ShowPartyGauge(SysTask *task, void *data) { - PartyGaugeTask *v0 = (PartyGaugeTask *)param1; + PartyGaugeTask *v0 = (PartyGaugeTask *)data; enum PartyGaugeSide v1; enum ShowPartyGaugeType v2; @@ -5268,15 +5570,15 @@ static void ShowPartyGaugeTask(SysTask *param0, void *param1) break; default: BattleController_EmitClearCommand(v0->battleSys, v0->battler, v0->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); break; } } -static void HidePartyGaugeTask(SysTask *param0, void *param1) +static void Task_HidePartyGauge(SysTask *task, void *data) { - PartyGaugeTask *v0 = (PartyGaugeTask *)param1; + PartyGaugeTask *v0 = (PartyGaugeTask *)data; enum PartyGaugeSide v1; PartyGauge *v2; enum HideArrowType v3; @@ -5312,242 +5614,242 @@ static void HidePartyGaugeTask(SysTask *param0, void *param1) break; default: BattleController_EmitClearCommand(v0->battleSys, v0->battler, v0->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_02263688(SysTask *param0, void *param1) +static void Task_SpriteToOAM(SysTask *task, void *data) { - UnkStruct_ov16_0225E2C8 *v0 = (UnkStruct_ov16_0225E2C8 *)param1; + SpriteToOAMData *spriteToOAMData = data; - switch (v0->unk_0E) { + switch (spriteToOAMData->state) { case 0: - GF_ASSERT(v0->battlerData->unk_88 == NULL); - v0->battlerData->unk_88 = ov12_022234F8(v0->battleSys, HEAP_ID_BATTLE, v0->unk_0D); - v0->unk_0E++; + GF_ASSERT(spriteToOAMData->battlerData->unk_88 == NULL); + spriteToOAMData->battlerData->unk_88 = ov12_022234F8(spriteToOAMData->battleSys, HEAP_ID_BATTLE, spriteToOAMData->battler); + spriteToOAMData->state++; break; default: - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); - Heap_Free(param1); - SysTask_Done(param0); + BattleController_EmitClearCommand(spriteToOAMData->battleSys, spriteToOAMData->battler, spriteToOAMData->command); + Heap_Free(data); + SysTask_Done(task); break; } } -static void ov16_022636D4(SysTask *param0, void *param1) +static void Task_OAMToSprite(SysTask *task, void *data) { - UnkStruct_ov16_0225E300 *v0 = (UnkStruct_ov16_0225E300 *)param1; + OAMToSpriteData *oamToSpriteData = data; - GF_ASSERT(v0->battlerData->unk_88 != NULL); + GF_ASSERT(oamToSpriteData->battlerData->unk_88 != NULL); - if (ov12_022237D8(v0->battlerData->unk_88) == 3) { - if (v0->unk_0E < 5) { - v0->unk_0E++; + if (ov12_022237D8(oamToSpriteData->battlerData->unk_88) == 3) { + if (oamToSpriteData->delay < 5) { + oamToSpriteData->delay++; return; } } - ov12_022237A4(v0->battlerData->unk_88, v0->unk_0D); - v0->battlerData->unk_88 = NULL; - BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); + ov12_022237A4(oamToSpriteData->battlerData->unk_88, oamToSpriteData->battler); + oamToSpriteData->battlerData->unk_88 = NULL; + BattleController_EmitClearCommand(oamToSpriteData->battleSys, oamToSpriteData->battler, oamToSpriteData->command); - Heap_Free(param1); - SysTask_Done(param0); + Heap_Free(data); + SysTask_Done(task); } -void ov16_02263730(BattleSystem *battleSys, BattlerData *battlerData) +void BattlerData_SetTaskFuncs(BattleSystem *battleSys, BattlerData *battlerData) { u32 battleType = BattleSystem_GetBattleType(battleSys); u32 v1 = BattleSystem_GetBattleStatusMask(battleSys); if (battleType & BATTLE_TYPE_AI) { if (battlerData->battler) { - battlerData->taskFuncs.func_00 = &ov16_02260AB4; - battlerData->taskFuncs.func_04 = &ov16_02260DB0; - battlerData->taskFuncs.func_08 = &ov16_022610A8; - battlerData->taskFuncs.func_0C = &ov16_02261D50; - battlerData->taskFuncs.func_10 = &ov16_02262258; - battlerData->taskFuncs.func_14 = &ov16_0226262C; - battlerData->bootState = 0x1; + battlerData->taskFuncs.setCommandSelection = &Task_TrainerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_TrainerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_TrainerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_TrainerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_TrainerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_TrainerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_AI; } else { - if (v1 & 0x10) { - battlerData->taskFuncs.func_00 = &ov16_02260BAC; - battlerData->taskFuncs.func_04 = &ov16_02260E98; - battlerData->taskFuncs.func_08 = &ov16_0226110C; - battlerData->taskFuncs.func_0C = &ov16_02261DE0; - battlerData->taskFuncs.func_10 = &ov16_0226232C; - battlerData->taskFuncs.func_14 = &ov16_0226266C; - battlerData->bootState = 0x0; + if (v1 & BATTLE_STATUS_RECORDING) { + battlerData->taskFuncs.setCommandSelection = &Task_RecordingSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_RecordingShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_RecordingShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_RecordingShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_RecordingShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_RecordingShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = &ov16_02260C00; - battlerData->taskFuncs.func_08 = &ov16_02260F14; - battlerData->taskFuncs.func_0C = &ov16_022611DC; - battlerData->taskFuncs.func_10 = &ov16_02261E8C; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_PlayerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_PlayerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_PlayerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_PlayerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } } else if ((battleType & (BATTLE_TYPE_2vs2 | BATTLE_TYPE_FRONTIER)) == (BATTLE_TYPE_2vs2 | BATTLE_TYPE_FRONTIER)) { - if (battlerData->battlerType & 0x1) { + if (battlerData->battlerType & BATTLER_THEM) { if (ov16_0223ED60(battleSys)) { - battlerData->taskFuncs.func_00 = &ov16_02260AB4; - battlerData->taskFuncs.func_04 = &ov16_02260DB0; - battlerData->taskFuncs.func_08 = &ov16_022610A8; - battlerData->taskFuncs.func_0C = &ov16_02261D50; - battlerData->taskFuncs.func_10 = &ov16_02262258; - battlerData->taskFuncs.func_14 = &ov16_0226262C; - battlerData->bootState = 0x1; + battlerData->taskFuncs.setCommandSelection = &Task_TrainerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_TrainerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_TrainerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_TrainerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_TrainerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_TrainerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_AI; } else { - battlerData->taskFuncs.func_00 = &ov16_02260AE4; - battlerData->taskFuncs.func_04 = &ov16_02260E78; - battlerData->taskFuncs.func_08 = &ov16_022610EC; - battlerData->taskFuncs.func_0C = &ov16_02261DA8; - battlerData->taskFuncs.func_10 = &ov16_0226230C; - battlerData->taskFuncs.func_14 = &ov16_0226264C; - battlerData->bootState = 0x2; + battlerData->taskFuncs.setCommandSelection = &Task_LinkSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_LinkShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_LinkShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_LinkShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_LinkShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_LinkShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_LINK; } - } else if (v1 & 0x10) { - battlerData->taskFuncs.func_00 = &ov16_02260BAC; - battlerData->taskFuncs.func_04 = &ov16_02260E98; - battlerData->taskFuncs.func_08 = &ov16_0226110C; - battlerData->taskFuncs.func_0C = &ov16_02261DE0; - battlerData->taskFuncs.func_10 = &ov16_0226232C; - battlerData->taskFuncs.func_14 = &ov16_0226266C; - battlerData->bootState = 0x0; + } else if (v1 & BATTLE_STATUS_RECORDING) { + battlerData->taskFuncs.setCommandSelection = &Task_RecordingSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_RecordingShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_RecordingShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_RecordingShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_RecordingShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_RecordingShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } else if (battlerData->battlerType != BattleSystem_GetBattlerType(battleSys, BattleSystem_GetNetworkID(battleSys) * 2)) { - battlerData->taskFuncs.func_00 = &ov16_02260AE4; - battlerData->taskFuncs.func_04 = &ov16_02260E78; - battlerData->taskFuncs.func_08 = &ov16_022610EC; - battlerData->taskFuncs.func_0C = &ov16_02261DA8; - battlerData->taskFuncs.func_10 = &ov16_0226230C; - battlerData->taskFuncs.func_14 = &ov16_0226264C; - battlerData->bootState = 0x2; + battlerData->taskFuncs.setCommandSelection = &Task_LinkSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_LinkShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_LinkShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_LinkShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_LinkShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_LinkShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_LINK; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = &ov16_02260C00; - battlerData->taskFuncs.func_08 = &ov16_02260F14; - battlerData->taskFuncs.func_0C = &ov16_022611DC; - battlerData->taskFuncs.func_10 = &ov16_02261E8C; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_PlayerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_PlayerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_PlayerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_PlayerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } else if (battleType & BATTLE_TYPE_2vs2) { - if (v1 & 0x10) { - battlerData->taskFuncs.func_00 = &ov16_02260BAC; - battlerData->taskFuncs.func_04 = &ov16_02260E98; - battlerData->taskFuncs.func_08 = &ov16_0226110C; - battlerData->taskFuncs.func_0C = &ov16_02261DE0; - battlerData->taskFuncs.func_10 = &ov16_0226232C; - battlerData->taskFuncs.func_14 = &ov16_0226266C; - battlerData->bootState = 0x0; + if (v1 & BATTLE_STATUS_RECORDING) { + battlerData->taskFuncs.setCommandSelection = &Task_RecordingSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_RecordingShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_RecordingShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_RecordingShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_RecordingShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_RecordingShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } else if (battlerData->battlerType != BattleSystem_GetBattlerType(battleSys, BattleSystem_GetNetworkID(battleSys))) { - battlerData->taskFuncs.func_00 = &ov16_02260AE4; - battlerData->taskFuncs.func_04 = &ov16_02260E78; - battlerData->taskFuncs.func_08 = &ov16_022610EC; - battlerData->taskFuncs.func_0C = &ov16_02261DA8; - battlerData->taskFuncs.func_10 = &ov16_0226230C; - battlerData->taskFuncs.func_14 = &ov16_0226264C; - battlerData->bootState = 0x2; + battlerData->taskFuncs.setCommandSelection = &Task_LinkSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_LinkShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_LinkShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_LinkShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_LinkShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_LinkShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_LINK; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = &ov16_02260C00; - battlerData->taskFuncs.func_08 = &ov16_02260F14; - battlerData->taskFuncs.func_0C = &ov16_022611DC; - battlerData->taskFuncs.func_10 = &ov16_02261E8C; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_PlayerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_PlayerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_PlayerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_PlayerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } else if (battleType & BATTLE_TYPE_LINK) { - if (v1 & 0x10) { - battlerData->taskFuncs.func_00 = &ov16_02260BAC; - battlerData->taskFuncs.func_04 = &ov16_02260E98; - battlerData->taskFuncs.func_08 = &ov16_0226110C; - battlerData->taskFuncs.func_0C = &ov16_02261DE0; - battlerData->taskFuncs.func_10 = &ov16_0226232C; - battlerData->taskFuncs.func_14 = &ov16_0226266C; - battlerData->bootState = 0x0; - } else if (battlerData->battlerType & 0x1) { - battlerData->taskFuncs.func_00 = &ov16_02260AE4; - battlerData->taskFuncs.func_04 = &ov16_02260E78; - battlerData->taskFuncs.func_08 = &ov16_022610EC; - battlerData->taskFuncs.func_0C = &ov16_02261DA8; - battlerData->taskFuncs.func_10 = &ov16_0226230C; - battlerData->taskFuncs.func_14 = &ov16_0226264C; - battlerData->bootState = 0x2; + if (v1 & BATTLE_STATUS_RECORDING) { + battlerData->taskFuncs.setCommandSelection = &Task_RecordingSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_RecordingShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_RecordingShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_RecordingShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_RecordingShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_RecordingShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; + } else if (battlerData->battlerType & BATTLER_THEM) { + battlerData->taskFuncs.setCommandSelection = &Task_LinkSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_LinkShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_LinkShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_LinkShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_LinkShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_LinkShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_LINK; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = &ov16_02260C00; - battlerData->taskFuncs.func_08 = &ov16_02260F14; - battlerData->taskFuncs.func_0C = &ov16_022611DC; - battlerData->taskFuncs.func_10 = &ov16_02261E8C; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_PlayerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_PlayerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_PlayerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_PlayerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } else if (battleType & BATTLE_TYPE_PAL_PARK) { - if (battlerData->battlerType & 0x1) { - battlerData->taskFuncs.func_00 = &ov16_02260B84; - battlerData->taskFuncs.func_04 = NULL; - battlerData->taskFuncs.func_08 = NULL; - battlerData->taskFuncs.func_0C = NULL; - battlerData->taskFuncs.func_10 = NULL; - battlerData->taskFuncs.func_14 = NULL; - battlerData->bootState = 0x1; + if (battlerData->battlerType & BATTLER_THEM) { + battlerData->taskFuncs.setCommandSelection = &Task_PalParkPokemonSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = NULL; + battlerData->taskFuncs.showTargetSelectMenu = NULL; + battlerData->taskFuncs.showBagMenu = NULL; + battlerData->taskFuncs.showPartyMenu = NULL; + battlerData->taskFuncs.showYesNoMenu = NULL; + battlerData->bootState = BATTLER_BOOT_STATE_AI; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = NULL; - battlerData->taskFuncs.func_08 = NULL; - battlerData->taskFuncs.func_0C = NULL; - battlerData->taskFuncs.func_10 = NULL; - battlerData->taskFuncs.func_14 = NULL; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = NULL; + battlerData->taskFuncs.showTargetSelectMenu = NULL; + battlerData->taskFuncs.showBagMenu = NULL; + battlerData->taskFuncs.showPartyMenu = NULL; + battlerData->taskFuncs.showYesNoMenu = NULL; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } else if (battleType & BATTLE_TYPE_SAFARI) { - if (battlerData->battlerType & 0x1) { - battlerData->taskFuncs.func_00 = &ov16_02260B04; - battlerData->taskFuncs.func_04 = NULL; - battlerData->taskFuncs.func_08 = NULL; - battlerData->taskFuncs.func_0C = NULL; - battlerData->taskFuncs.func_10 = NULL; - battlerData->taskFuncs.func_14 = NULL; - battlerData->bootState = 0x1; + if (battlerData->battlerType & BATTLER_THEM) { + battlerData->taskFuncs.setCommandSelection = &Task_SafariPokemonSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = NULL; + battlerData->taskFuncs.showTargetSelectMenu = NULL; + battlerData->taskFuncs.showBagMenu = NULL; + battlerData->taskFuncs.showPartyMenu = NULL; + battlerData->taskFuncs.showYesNoMenu = NULL; + battlerData->bootState = BATTLER_BOOT_STATE_AI; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = NULL; - battlerData->taskFuncs.func_08 = NULL; - battlerData->taskFuncs.func_0C = NULL; - battlerData->taskFuncs.func_10 = NULL; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = NULL; + battlerData->taskFuncs.showTargetSelectMenu = NULL; + battlerData->taskFuncs.showBagMenu = NULL; + battlerData->taskFuncs.showPartyMenu = NULL; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } else { - if (battlerData->battlerType & 0x1) { - battlerData->taskFuncs.func_00 = &ov16_02260AB4; - battlerData->taskFuncs.func_04 = &ov16_02260DB0; - battlerData->taskFuncs.func_08 = &ov16_022610A8; - battlerData->taskFuncs.func_0C = &ov16_02261D50; - battlerData->taskFuncs.func_10 = &ov16_02262258; - battlerData->taskFuncs.func_14 = &ov16_0226262C; - battlerData->bootState = 0x1; + if (battlerData->battlerType & BATTLER_THEM) { + battlerData->taskFuncs.setCommandSelection = &Task_TrainerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_TrainerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_TrainerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_TrainerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_TrainerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_TrainerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_AI; } else { - if (v1 & 0x10) { - battlerData->taskFuncs.func_00 = &ov16_02260BAC; - battlerData->taskFuncs.func_04 = &ov16_02260E98; - battlerData->taskFuncs.func_08 = &ov16_0226110C; - battlerData->taskFuncs.func_0C = &ov16_02261DE0; - battlerData->taskFuncs.func_10 = &ov16_0226232C; - battlerData->taskFuncs.func_14 = &ov16_0226266C; - battlerData->bootState = 0x0; + if (v1 & BATTLE_STATUS_RECORDING) { + battlerData->taskFuncs.setCommandSelection = &Task_RecordingSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_RecordingShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_RecordingShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_RecordingShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_RecordingShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_RecordingShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } else { - battlerData->taskFuncs.func_00 = &ov16_022604C8; - battlerData->taskFuncs.func_04 = &ov16_02260C00; - battlerData->taskFuncs.func_08 = &ov16_02260F14; - battlerData->taskFuncs.func_0C = &ov16_022611DC; - battlerData->taskFuncs.func_10 = &ov16_02261E8C; - battlerData->taskFuncs.func_14 = &ov16_022623F0; - battlerData->bootState = 0x0; + battlerData->taskFuncs.setCommandSelection = &Task_PlayerSetCommandSelection; + battlerData->taskFuncs.showMoveSelectMenu = &Task_PlayerShowMoveSelectMenu; + battlerData->taskFuncs.showTargetSelectMenu = &Task_PlayerShowTargetSelectMenu; + battlerData->taskFuncs.showBagMenu = &Task_PlayerShowBagMenu; + battlerData->taskFuncs.showPartyMenu = &Task_PlayerShowPartyMenu; + battlerData->taskFuncs.showYesNoMenu = &Task_PlayerShowYesNoMenu; + battlerData->bootState = BATTLER_BOOT_STATE_NORMAL; } } } @@ -5634,81 +5936,81 @@ static PokemonSprite *ov16_02263B30(BattleSystem *battleSys, PokemonSpriteManage return v0; } -static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message, BattleMessage *param3) +static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *battlerData, RecallMsgMessage *message, BattleMessage *battleMsg) { - if (battlerData->battlerType & 0x1) { + if (battlerData->battlerType & BATTLER_THEM) { if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { - param3->id = 990; - param3->tags = 27; - param3->params[0] = battlerData->battler; - param3->params[1] = battlerData->battler | (message->partySlot << 8); + battleMsg->id = 990; + battleMsg->tags = 27; + battleMsg->params[0] = battlerData->battler; + battleMsg->params[1] = battlerData->battler | (message->partySlot << 8); } else { - param3->id = 989; - param3->tags = 50; - param3->params[0] = battlerData->battler; - param3->params[1] = battlerData->battler; - param3->params[2] = battlerData->battler | (message->partySlot << 8); + battleMsg->id = 989; + battleMsg->tags = 50; + battleMsg->params[0] = battlerData->battler; + battleMsg->params[1] = battlerData->battler; + battleMsg->params[2] = battlerData->battler | (message->partySlot << 8); } } else { if (((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { if (message->hpPercent == 0) { - param3->id = 984; + battleMsg->id = 984; } else if (message->hpPercent < 25) { - param3->id = 985; + battleMsg->id = 985; } else if (message->hpPercent < 50) { - param3->id = 988; + battleMsg->id = 988; } else if (message->hpPercent < 75) { - param3->id = 986; + battleMsg->id = 986; } else { - param3->id = 987; + battleMsg->id = 987; } } else { - param3->id = 985; + battleMsg->id = 985; } - param3->tags = 2; - param3->params[0] = battlerData->battler | (message->partySlot << 8); + battleMsg->tags = 2; + battleMsg->params[0] = battlerData->battler | (message->partySlot << 8); } } -static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message, BattleMessage *param3) +static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *battlerData, SendOutMsgMessage *message, BattleMessage *battleMsg) { - if (battlerData->battlerType & 0x1) { + if (battlerData->battlerType & BATTLER_THEM) { if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == 0) { - param3->id = 972; - param3->tags = 50; - param3->params[0] = battlerData->battler; - param3->params[1] = battlerData->battler; - param3->params[2] = battlerData->battler | (message->partySlot << 8); + battleMsg->id = 972; + battleMsg->tags = 50; + battleMsg->params[0] = battlerData->battler; + battleMsg->params[1] = battlerData->battler; + battleMsg->params[2] = battlerData->battler | (message->partySlot << 8); } else { - param3->id = 974; - param3->tags = 27; - param3->params[0] = battlerData->battler; - param3->params[1] = battlerData->battler | (message->partySlot << 8); + battleMsg->id = 974; + battleMsg->tags = 27; + battleMsg->params[0] = battlerData->battler; + battleMsg->params[1] = battlerData->battler | (message->partySlot << 8); } } else { if (((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) == 0) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { if (message->hpPercent < 100) { - param3->id = 982; + battleMsg->id = 982; } else if (message->hpPercent < 325) { - param3->id = 983; + battleMsg->id = 983; } else if (message->hpPercent < 550) { - param3->id = 981; + battleMsg->id = 981; } else if (message->hpPercent < 775) { - param3->id = 980; + battleMsg->id = 980; } else { - param3->id = 979; + battleMsg->id = 979; } } else { - param3->id = 979; + battleMsg->id = 979; } - param3->tags = 2; - param3->params[0] = battlerData->battler | (message->partySlot << 8); + battleMsg->tags = 2; + battleMsg->params[0] = battlerData->battler | (message->partySlot << 8); } } -static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *unused, BattleMessage *message) +static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *unused, BattleMessage *battleMsg) { u32 battleType; int battlerType1; @@ -5726,40 +6028,40 @@ static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *unused, BattleMe if (battleType & BATTLE_TYPE_LINK) { if (battleType & BATTLE_TYPE_FRONTIER) { - message->id = 992; - message->tags = 59; - message->params[0] = battlerType1; - message->params[1] = battlerType1; - message->params[2] = battlerType2; - message->params[3] = battlerType2; + battleMsg->id = 992; + battleMsg->tags = 59; + battleMsg->params[0] = battlerType1; + battleMsg->params[1] = battlerType1; + battleMsg->params[2] = battlerType2; + battleMsg->params[3] = battlerType2; } else if (battleType & BATTLE_TYPE_2vs2) { - message->id = 971; - message->tags = 26; - message->params[0] = battlerType1; - message->params[1] = battlerType2; + battleMsg->id = 971; + battleMsg->tags = 26; + battleMsg->params[0] = battlerType1; + battleMsg->params[1] = battlerType2; } else { - message->id = 970; - message->tags = 8; - message->params[0] = battlerType1; + battleMsg->id = 970; + battleMsg->tags = 8; + battleMsg->params[0] = battlerType1; } } else { if ((battleType & BATTLE_TYPE_TAG) || (battleType & BATTLE_TYPE_2vs2)) { - message->id = 992; - message->tags = 59; - message->params[0] = battlerType1; - message->params[1] = battlerType1; - message->params[2] = battlerType2; - message->params[3] = battlerType2; + battleMsg->id = 992; + battleMsg->tags = 59; + battleMsg->params[0] = battlerType1; + battleMsg->params[1] = battlerType1; + battleMsg->params[2] = battlerType2; + battleMsg->params[3] = battlerType2; } else { - message->id = 969; - message->tags = 30; - message->params[0] = battlerType1; - message->params[1] = battlerType1; + battleMsg->id = 969; + battleMsg->tags = 30; + battleMsg->params[0] = battlerType1; + battleMsg->params[1] = battlerType1; } } } -static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message, BattleMessage *param3) +static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, LeadMonMsgMessage *message, BattleMessage *battleMsg) { u32 battleType; int v1; @@ -5767,7 +6069,7 @@ static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, Lea battleType = BattleSystem_GetBattleType(battleSys); - if (battlerData->battlerType & 0x1) { + if (battlerData->battlerType & BATTLER_THEM) { if (battleType & BATTLE_TYPE_DOUBLES) { v1 = battlerData->battler; v2 = BattleSystem_GetPartner(battleSys, battlerData->battler); @@ -5778,56 +6080,56 @@ static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, Lea if (battleType & BATTLE_TYPE_LINK) { if (battleType & BATTLE_TYPE_FRONTIER) { - param3->id = 991; - param3->tags = 60; - param3->params[0] = v1; - param3->params[1] = v1; - param3->params[2] = v1 | (message->partySlot[v1] << 8); - param3->params[3] = v2; - param3->params[4] = v2; - param3->params[5] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 991; + battleMsg->tags = 60; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1; + battleMsg->params[2] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[3] = v2; + battleMsg->params[4] = v2; + battleMsg->params[5] = v2 | (message->partySlot[v2] << 8); } else if (battleType & BATTLE_TYPE_2vs2) { - param3->id = 976; - param3->tags = 56; - param3->params[0] = v1; - param3->params[1] = v1 | (message->partySlot[v1] << 8); - param3->params[2] = v2; - param3->params[3] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 976; + battleMsg->tags = 56; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[2] = v2; + battleMsg->params[3] = v2 | (message->partySlot[v2] << 8); } else if (battleType & BATTLE_TYPE_DOUBLES) { - param3->id = 975; - param3->tags = 49; - param3->params[0] = v1; - param3->params[1] = v1 | (message->partySlot[v1] << 8); - param3->params[2] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 975; + battleMsg->tags = 49; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[2] = v2 | (message->partySlot[v2] << 8); } else { - param3->id = 974; - param3->tags = 27; - param3->params[0] = v1; - param3->params[1] = v1 | (message->partySlot[v1] << 8); + battleMsg->id = 974; + battleMsg->tags = 27; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1 | (message->partySlot[v1] << 8); } } else { if ((battleType & BATTLE_TYPE_TAG) || (battleType & BATTLE_TYPE_2vs2)) { - param3->id = 991; - param3->tags = 60; - param3->params[0] = v1; - param3->params[1] = v1; - param3->params[2] = v1 | (message->partySlot[v1] << 8); - param3->params[3] = v2; - param3->params[4] = v2; - param3->params[5] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 991; + battleMsg->tags = 60; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1; + battleMsg->params[2] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[3] = v2; + battleMsg->params[4] = v2; + battleMsg->params[5] = v2 | (message->partySlot[v2] << 8); } else if (battleType & BATTLE_TYPE_DOUBLES) { - param3->id = 973; - param3->tags = 57; - param3->params[0] = v1; - param3->params[1] = v1; - param3->params[2] = v1 | (message->partySlot[v1] << 8); - param3->params[3] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 973; + battleMsg->tags = 57; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1; + battleMsg->params[2] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[3] = v2 | (message->partySlot[v2] << 8); } else { - param3->id = 972; - param3->tags = 50; - param3->params[0] = v1; - param3->params[1] = v1; - param3->params[2] = v1 | (message->partySlot[v1] << 8); + battleMsg->id = 972; + battleMsg->tags = 50; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1; + battleMsg->params[2] = v1 | (message->partySlot[v1] << 8); } } } else { @@ -5869,44 +6171,44 @@ static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *battlerData, Lea if (battleType & BATTLE_TYPE_LINK) { if (battleType & BATTLE_TYPE_2vs2) { - param3->id = 977; - param3->tags = 49; - param3->params[0] = v1; - param3->params[1] = v1 | (message->partySlot[v1] << 8); - param3->params[2] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 977; + battleMsg->tags = 49; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[2] = v2 | (message->partySlot[v2] << 8); } else if (battleType & BATTLE_TYPE_DOUBLES) { - param3->id = 978; - param3->tags = 9; - param3->params[0] = v1 | (message->partySlot[v1] << 8); - param3->params[1] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 978; + battleMsg->tags = 9; + battleMsg->params[0] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[1] = v2 | (message->partySlot[v2] << 8); } else { - param3->id = 979; - param3->tags = 2; - param3->params[0] = v1 | (message->partySlot[v1] << 8); + battleMsg->id = 979; + battleMsg->tags = 2; + battleMsg->params[0] = v1 | (message->partySlot[v1] << 8); } } else { if (battleType & BATTLE_TYPE_2vs2) { - param3->id = 993; - param3->tags = 57; - param3->params[0] = v1; - param3->params[1] = v1; - param3->params[2] = v1 | (message->partySlot[v1] << 8); - param3->params[3] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 993; + battleMsg->tags = 57; + battleMsg->params[0] = v1; + battleMsg->params[1] = v1; + battleMsg->params[2] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[3] = v2 | (message->partySlot[v2] << 8); } else if (battleType & BATTLE_TYPE_DOUBLES) { - param3->id = 978; - param3->tags = 9; - param3->params[0] = v1 | (message->partySlot[v1] << 8); - param3->params[1] = v2 | (message->partySlot[v2] << 8); + battleMsg->id = 978; + battleMsg->tags = 9; + battleMsg->params[0] = v1 | (message->partySlot[v1] << 8); + battleMsg->params[1] = v2 | (message->partySlot[v2] << 8); } else { - param3->id = 979; - param3->tags = 2; - param3->params[0] = v1 | (message->partySlot[v1] << 8); + battleMsg->id = 979; + battleMsg->tags = 2; + battleMsg->params[0] = v1 | (message->partySlot[v1] << 8); } } } } -static void ov16_022641B4(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *message) +static void ov16_022641B4(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg) { u32 battleType; int v1; @@ -5927,44 +6229,44 @@ static void ov16_022641B4(BattleSystem *battleSys, BattlerData *battlerData, Bat switch (v3) { case 0x1: if (battleType & BATTLE_TYPE_2vs2) { - message->id = 786; - message->tags = 26; - message->params[0] = v1; - message->params[1] = v2; + battleMsg->id = 786; + battleMsg->tags = 26; + battleMsg->params[0] = v1; + battleMsg->params[1] = v2; } else { - message->id = 785; - message->tags = 8; - message->params[0] = v1; + battleMsg->id = 785; + battleMsg->tags = 8; + battleMsg->params[0] = v1; } break; case 0x2: if (battleType & BATTLE_TYPE_2vs2) { - message->id = 788; - message->tags = 26; - message->params[0] = v1; - message->params[1] = v2; + battleMsg->id = 788; + battleMsg->tags = 26; + battleMsg->params[0] = v1; + battleMsg->params[1] = v2; } else { - message->id = 787; - message->tags = 8; - message->params[0] = v1; + battleMsg->id = 787; + battleMsg->tags = 8; + battleMsg->params[0] = v1; } break; case 0x3: if (battleType & BATTLE_TYPE_2vs2) { - message->id = 790; - message->tags = 26; - message->params[0] = v1; - message->params[1] = v2; + battleMsg->id = 790; + battleMsg->tags = 26; + battleMsg->params[0] = v1; + battleMsg->params[1] = v2; } else { - message->id = 789; - message->tags = 8; - message->params[0] = v1; + battleMsg->id = 789; + battleMsg->tags = 8; + battleMsg->params[0] = v1; } break; } } -static void ov16_02264270(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message, BattleMessage *param3) +static void ov16_02264270(BattleSystem *battleSys, BattlerData *battlerData, EscapeMsgMessage *message, BattleMessage *battleMsg) { int i; int v1 = 0; @@ -5981,78 +6283,73 @@ static void ov16_02264270(BattleSystem *battleSys, BattlerData *battlerData, Esc } if ((v1) && (v2)) { - param3->id = 781; - param3->tags = 0; + battleMsg->id = 781; + battleMsg->tags = 0; BattleSystem_SetResultMask(battleSys, 0x3 | 0x80 | 0x40); } else if (v1) { - param3->id = 781; - param3->tags = 0; + battleMsg->id = 781; + battleMsg->tags = 0; BattleSystem_SetResultMask(battleSys, 0x2 | 0x80 | 0x40); } else { if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) { - param3->id = 792; - param3->tags = 26; - param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); - param3->params[1] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + battleMsg->id = 792; + battleMsg->tags = 26; + battleMsg->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + battleMsg->params[1] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); } else if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { - param3->id = 791; - param3->tags = 8; - param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + battleMsg->id = 791; + battleMsg->tags = 8; + battleMsg->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); } else { - param3->id = 791; - param3->tags = 8; - param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); + battleMsg->id = 791; + battleMsg->tags = 8; + battleMsg->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); } BattleSystem_SetResultMask(battleSys, 0x1 | 0x80 | 0x40); } } -static void ov16_02264360(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *message) +static void ov16_02264360(BattleSystem *battleSys, BattlerData *battlerData, BattleMessage *battleMsg) { - message->id = 956; - message->tags = 8; + battleMsg->id = 956; + battleMsg->tags = 8; if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { if (ov16_0223F6F0(battleSys, BattleSystem_GetNetworkID(battleSys))) { - message->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + battleMsg->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); } else { - message->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + battleMsg->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); } } else { - message->params[0] = battlerData->battler; + battleMsg->params[0] = battlerData->battler; } BattleSystem_SetResultMask(battleSys, 0x2 | 0x80 | 0x40); } -static ManagedSprite *ov16_022643B8(BattleSystem *battleSys, int param1, int param2, int param3, s16 param4, s16 param5) +static ManagedSprite *BattleDisplay_NewManagedSpriteTrainer(BattleSystem *battleSys, int side, int trainerClass, int battlerType, s16 x, s16 y) { - SpriteSystem *v0; - SpriteManager *v1; - PaletteData *v2; - ManagedSprite *v3; - int v4; + SpriteSystem *spriteSys = BattleSystem_GetSpriteSystem(battleSys); + SpriteManager *spriteMan = BattleSystem_GetSpriteManager(battleSys); + PaletteData *paletteData = BattleSystem_GetPaletteData(battleSys); + ManagedSprite *managedSprite; + int face; - v0 = BattleSystem_GetSpriteSystem(battleSys); - v1 = BattleSystem_GetSpriteManager(battleSys); - v2 = BattleSystem_GetPaletteData(battleSys); - - if (param1 & 0x1) { - v4 = 2; + if (side & BATTLER_THEM) { + face = FACE_FRONT; } else { - v4 = 0; + face = FACE_BACK; } - v3 = sub_02076994(v0, v1, v2, param4, param5, param2, v4, param3, 5); + managedSprite = SpriteSystem_NewManagedSpriteTrainer(spriteSys, spriteMan, paletteData, x, y, trainerClass, face, battlerType, 5); - return v3; + return managedSprite; } static void ov16_02264408(BattleSystem *battleSys, BattlerData *battlerData, BattleAnimSystem *battleAnimSystem, MoveAnimation *animation) { BattleAnimBattlerContext battlerContext; - int i; int move; if (animation->unk_4C == 0) { @@ -6067,7 +6364,7 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *battlerData, Bat battlerContext.paletteData = BattleSystem_GetPaletteData(battleSys); battlerContext.spriteSystem = BattleSystem_GetSpriteSystem(battleSys); - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { battlerContext.pokemonSpriteData[i] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, i); battlerContext.battlerSpecies[i] = animation->species[i]; battlerContext.battlerGenders[i] = animation->genders[i]; @@ -6077,7 +6374,7 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *battlerData, Bat battlerContext.battlerMoveEffects[i] = animation->moveEffectMasks[i]; } - ov16_0223F87C(battleSys, &(battlerContext.battlerTypes[0])); + BattleSystem_SetBattlerTypes(battleSys, &(battlerContext.battlerTypes[0])); ov16_0223F8AC(battleSys, &(battlerContext.pokemonSprites[0])); battlerContext.battleType = BattleSystem_GetBattleType(battleSys); @@ -6096,12 +6393,10 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *battlerData, Bat static void ov16_02264530(BattleSystem *battleSys, MoveAnimation *animation, UnkStruct_ov12_022380DC *param2, int param3) { - int i; - param2->unk_00 = param3; param2->unk_04 = param3; - for (i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { param2->pokemonSpriteData[i] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, i); param2->species[i] = animation->species[i]; param2->genders[i] = animation->genders[i]; @@ -6110,7 +6405,7 @@ static void ov16_02264530(BattleSystem *battleSys, MoveAnimation *animation, Unk param2->personalities[i] = animation->personalities[i]; } - ov16_0223F87C(battleSys, &(param2->types[0])); + BattleSystem_SetBattlerTypes(battleSys, &(param2->types[0])); ov16_0223F8AC(battleSys, &(param2->sprites[0])); } @@ -6157,18 +6452,18 @@ static void ov16_022645B8(u8 *param0, u8 *param1, int param2, int param3, u16 pa } } -static BOOL ov16_02264650(UnkStruct_ov16_02264650_1 *param0, ManagedSprite *param1) +static BOOL ov16_02264650(TrainerEncounterData *trainerEncounterData, ManagedSprite *param1) { UnkStruct_ov16_02264650 *v0; int v1; BOOL v2 = 0; - v1 = ManagedSprite_GetUserAttrForCurrentAnimFrame(param0->unk_08); + v1 = ManagedSprite_GetUserAttrForCurrentAnimFrame(trainerEncounterData->managedSprite); switch (v1) { case 1: - if (param0->unk_12_0 == 0) { - param0->unk_12_0 = 1; + if (trainerEncounterData->unk_12_0 == 0) { + trainerEncounterData->unk_12_0 = 1; v0 = (UnkStruct_ov16_02264650 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_02264650)); v0->unk_00 = 0; v0->unk_04 = 0; @@ -6182,8 +6477,8 @@ static BOOL ov16_02264650(UnkStruct_ov16_02264650_1 *param0, ManagedSprite *para break; default: if (((v1 & 0xf00) == 0x100) && (v1 & 0xff)) { - ManagedSprite_SetAnimationFrame(param0->unk_08, 0); - ManagedSprite_SetAnim(param0->unk_08, (v1 & 0xff) - 1); + ManagedSprite_SetAnimationFrame(trainerEncounterData->managedSprite, 0); + ManagedSprite_SetAnim(trainerEncounterData->managedSprite, (v1 & 0xff) - 1); v2 = 1; } @@ -6193,7 +6488,7 @@ static BOOL ov16_02264650(UnkStruct_ov16_02264650_1 *param0, ManagedSprite *para return v2; } -static void ov16_022646C8(SysTask *param0, void *param1) +static void ov16_022646C8(SysTask *task, void *param1) { UnkStruct_ov16_02264650 *v0 = (UnkStruct_ov16_02264650 *)param1; @@ -6211,7 +6506,7 @@ static void ov16_022646C8(SysTask *param0, void *param1) case 2: if (BrightnessController_IsTransitionComplete(BRIGHTNESS_MAIN_SCREEN) == TRUE) { Heap_Free(param1); - SysTask_Done(param0); + SysTask_Done(task); } break; } @@ -6229,13 +6524,13 @@ static void ov16_0226474C(BattleSystem *battleSys) BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } -static u8 ov16_02264768(BattleSystem *battleSys, u8 param1, u8 param2) +static u8 ov16_02264768(BattleSystem *battleSys, u8 battler, u8 trainerClass) { if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { - if ((TrainerInfo_GameCode(BattleSystem_GetTrainerInfo(battleSys, param1)) == 0) && (param2 <= 1)) { - param2 += 103; + if (TrainerInfo_GameCode(BattleSystem_GetTrainerInfo(battleSys, battler)) == 0 && trainerClass <= TRAINER_CLASS_PLAYER_FEMALE) { + trainerClass += TRAINER_CLASS_DP_PLAYER_MALE_2; } } - return param2; + return trainerClass; } diff --git a/src/battle/battle_io_command.c b/src/battle/battle_io_command.c index 6dd81fa20a..ba3482b1ee 100644 --- a/src/battle/battle_io_command.c +++ b/src/battle/battle_io_command.c @@ -4,21 +4,23 @@ #include #include "constants/battle/battle_controller.h" +#include "generated/battle_boot_states.h" #include "struct_decls/battle_system.h" #include "struct_defs/battler_data.h" +#include "struct_defs/move_animation.h" #include "battle/battle_controller.h" #include "battle/battle_cursor.h" #include "battle/battle_display.h" #include "battle/battle_message.h" #include "battle/battle_system.h" +#include "battle/common.h" #include "battle/healthbar.h" #include "battle/message_defs.h" #include "battle/ov16_02264798.h" #include "battle/party_gauge.h" #include "battle/struct_ov16_0223C2C0.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle/struct_ov16_02268A14_decl.h" #include "battle_anim/ov12_02235E94.h" #include "battle_anim/ov12_022380BC.h" @@ -35,79 +37,79 @@ #include "pokemon_sprite.h" #include "sprite_system.h" -typedef void (*UnkFuncPtr_ov16_0226F068)(BattleSystem *, BattlerData *); +typedef void (*BattleCommandPtr)(BattleSystem *, BattlerData *); BattlerData *ov16_0225BFFC(BattleSystem *battleSys, UnkStruct_ov16_0223C2C0 *param1); void ov16_0225C0DC(BattleSystem *battleSys, BattlerData *battlerData); void ov16_0225C104(BattleSystem *battleSys, BattlerData *battlerData, int param2); -void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int param2, int param3); -static void ov16_0225C138(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C13C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C168(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C17C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C190(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C1A4(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C1B8(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C1CC(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C1F0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C204(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C218(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C228(BattleSystem *battleSys, BattlerData *battlerData); +void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int ballID, int unused); +static void BtlIOCmd_None(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetupUI(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetEncounter(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowEncounter(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowPokemon(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ReturnPokemon(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_OpenCaptureBall(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_DeletePokemon(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetTrainerEncounter(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ThrowTrainerBall(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SlideTrainerOut(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SlideTrainerIn(BattleSystem *battleSys, BattlerData *battlerData); static void BtlIOCmd_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battlerData); static void BtlIOCmd_SlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C260(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C288(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C29C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C2B0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C2C4(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C2D8(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C2EC(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetCommandSelection(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowMoveSelectMenu(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowTargetSelectMenu(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowBagMenu(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowPartyMenu(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowYesNoMenu(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintAttackMessage(BattleSystem *battleSys, BattlerData *battlerData); static void BtlIOCmd_PrintBattleMessage(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C314(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C328(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C35C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C370(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C384(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C398(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C3AC(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C3BC(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C3D0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C3E4(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C3F8(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C40C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C420(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C430(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C444(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C454(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C468(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C47C(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetMoveAnimation(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_FlickerBattler(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_UpdateHPGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_UpdateExpGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PlayFaintingSequence(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PlaySound(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_FadeOut(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ToggleVanish(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetStatusIcon(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintTrainerMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintRecallMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintSendOutMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintBattleStartMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintLeadMonMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PlayLevelUpAnimation(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetAlertMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_RefreshHPGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_UpdatePartyMon(BattleSystem *battleSys, BattlerData *battlerData); static void ov16_0225C558(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C5B0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C5E0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C65C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C670(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C684(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C77C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C79C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C840(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C854(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C868(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C8A4(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C8E0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C91C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C940(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C988(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C9AC(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C9C0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C9D0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C9E0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225C9F0(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CA14(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CA38(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CA4C(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CA60(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *battlerData); -static void ov16_0225CB80(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_StopGaugeAnimation(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_RefreshPartyStatus(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ForgetMove(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SetMosaic(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ChangeWeatherForm(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_UpdateBg(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ClearTouchScreen(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_HidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_LoadPartyGaugeGraphics(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_FreePartyGaugeGraphics(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_IncrementRecord(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintLinkWaitMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_RestoreSprite(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SpriteToOAM(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_OAMToSprite(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintResultMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintEscapeMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PrintForfeitMessage(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_RefreshSprite(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_FlyMoveHitSoundEffect(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_PlayMusic(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_SubmitResult(BattleSystem *battleSys, BattlerData *battlerData); +static void BtlIOCmd_ClearMessageBox(BattleSystem *battleSys, BattlerData *battlerData); static void ZeroDataBuffer(BattlerData *battlerData); extern const u8 Unk_ov16_0226F174[]; @@ -115,7 +117,6 @@ extern const u8 Unk_ov16_0226F174[]; BattlerData *ov16_0225BFFC(BattleSystem *battleSys, UnkStruct_ov16_0223C2C0 *param1) { BattlerData *battlerData; - int v1; battlerData = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlerData)); MI_CpuClearFast(battlerData, sizeof(BattlerData)); @@ -127,30 +128,29 @@ BattlerData *ov16_0225BFFC(BattleSystem *battleSys, UnkStruct_ov16_0223C2C0 *par return battlerData; } -void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int param2, int param3) +void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int ballID, int unused) { - BallThrow v0; - s16 v1, v2; + BallThrow ballThrow; if (BattleSystem_GetBattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { return; } - if ((battlerData->battlerType & 0x1) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE)) { + if ((battlerData->battlerType & BATTLER_THEM) && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE) { return; } - v0.type = Unk_ov16_0226F174[battlerData->battlerType]; - v0.heapID = HEAP_ID_BATTLE; - v0.mode = 4; - v0.target = battlerData->battler; - v0.ballID = param2; - v0.cellActorSys = BattleSystem_GetSpriteSystem(battleSys); - v0.paletteSys = BattleSystem_GetPaletteData(battleSys); - v0.surface = 0; - v0.bgPrio = 1; + ballThrow.type = Unk_ov16_0226F174[battlerData->battlerType]; + ballThrow.heapID = HEAP_ID_BATTLE; + ballThrow.mode = 4; + ballThrow.target = battlerData->battler; + ballThrow.ballID = ballID; + ballThrow.cellActorSys = BattleSystem_GetSpriteSystem(battleSys); + ballThrow.paletteSys = BattleSystem_GetPaletteData(battleSys); + ballThrow.surface = 0; + ballThrow.bgPrio = 1; - battlerData->ballRotation = ov12_02237728(&v0); + battlerData->ballRotation = ov12_02237728(&ballThrow); ov12_02237E34(battlerData->ballRotation, 100); ov12_02237E40(battlerData->ballRotation, 2); @@ -158,81 +158,81 @@ void ov16_0225C038(BattleSystem *battleSys, BattlerData *battlerData, int param2 ov12_02237E30(battlerData->ballRotation, 0); } -static const UnkFuncPtr_ov16_0226F068 Unk_ov16_0226F068[] = { - [BATTLE_COMMAND_NONE] = ov16_0225C138, - [BATTLE_COMMAND_SETUP_UI] = ov16_0225C13C, - [BATTLE_COMMAND_SET_ENCOUNTER] = ov16_0225C168, - [BATTLE_COMMAND_SHOW_ENCOUNTER] = ov16_0225C17C, - [BATTLE_COMMAND_SHOW_POKEMON] = ov16_0225C190, - [BATTLE_COMMAND_RETURN_POKEMON] = ov16_0225C1A4, - [BATTLE_COMMAND_OPEN_CAPTURE_BALL] = ov16_0225C1B8, - [BATTLE_COMMAND_DELETE_POKEMON] = ov16_0225C1CC, - [BATTLE_COMMAND_SET_TRAINER_ENCOUNTER] = ov16_0225C1F0, - [BATTLE_COMMAND_THROW_TRAINER_BALL] = ov16_0225C204, - [BATTLE_COMMAND_SLIDE_TRAINER_OUT] = ov16_0225C218, - [BATTLE_COMMAND_SLIDE_TRAINER_IN] = ov16_0225C228, +static const BattleCommandPtr sBattleCommands[] = { + [BATTLE_COMMAND_NONE] = BtlIOCmd_None, + [BATTLE_COMMAND_SETUP_UI] = BtlIOCmd_SetupUI, + [BATTLE_COMMAND_SET_ENCOUNTER] = BtlIOCmd_SetEncounter, + [BATTLE_COMMAND_SHOW_ENCOUNTER] = BtlIOCmd_ShowEncounter, + [BATTLE_COMMAND_SHOW_POKEMON] = BtlIOCmd_ShowPokemon, + [BATTLE_COMMAND_RETURN_POKEMON] = BtlIOCmd_ReturnPokemon, + [BATTLE_COMMAND_OPEN_CAPTURE_BALL] = BtlIOCmd_OpenCaptureBall, + [BATTLE_COMMAND_DELETE_POKEMON] = BtlIOCmd_DeletePokemon, + [BATTLE_COMMAND_SET_TRAINER_ENCOUNTER] = BtlIOCmd_SetTrainerEncounter, + [BATTLE_COMMAND_THROW_TRAINER_BALL] = BtlIOCmd_ThrowTrainerBall, + [BATTLE_COMMAND_SLIDE_TRAINER_OUT] = BtlIOCmd_SlideTrainerOut, + [BATTLE_COMMAND_SLIDE_TRAINER_IN] = BtlIOCmd_SlideTrainerIn, [BATTLE_COMMAND_SLIDE_HEALTHBAR_IN] = BtlIOCmd_SlideHealthbarIn, [BATTLE_COMMAND_SLIDE_HEALTHBAR_OUT] = BtlIOCmd_SlideHealthbarOut, - [BATTLE_COMMAND_SET_COMMAND_SELECTION] = ov16_0225C260, - [BATTLE_COMMAND_SHOW_MOVE_SELECT_MENU] = ov16_0225C288, - [BATTLE_COMMAND_SHOW_TARGET_SELECT_MENU] = ov16_0225C29C, - [BATTLE_COMMAND_SHOW_BAG_MENU] = ov16_0225C2B0, - [BATTLE_COMMAND_SHOW_PARTY_MENU] = ov16_0225C2C4, - [BATTLE_COMMAND_SHOW_YES_NO_MENU] = ov16_0225C2D8, - [BATTLE_COMMAND_PRINT_ATTACK_MESSAGE] = ov16_0225C2EC, + [BATTLE_COMMAND_SET_COMMAND_SELECTION] = BtlIOCmd_SetCommandSelection, + [BATTLE_COMMAND_SHOW_MOVE_SELECT_MENU] = BtlIOCmd_ShowMoveSelectMenu, + [BATTLE_COMMAND_SHOW_TARGET_SELECT_MENU] = BtlIOCmd_ShowTargetSelectMenu, + [BATTLE_COMMAND_SHOW_BAG_MENU] = BtlIOCmd_ShowBagMenu, + [BATTLE_COMMAND_SHOW_PARTY_MENU] = BtlIOCmd_ShowPartyMenu, + [BATTLE_COMMAND_SHOW_YES_NO_MENU] = BtlIOCmd_ShowYesNoMenu, + [BATTLE_COMMAND_PRINT_ATTACK_MESSAGE] = BtlIOCmd_PrintAttackMessage, [BATTLE_COMMAND_PRINT_MESSAGE] = BtlIOCmd_PrintBattleMessage, - [BATTLE_COMMAND_SET_MOVE_ANIMATION] = ov16_0225C314, - [BATTLE_COMMAND_FLICKER_BATTLER] = ov16_0225C328, - [BATTLE_COMMAND_UPDATE_HP_GAUGE] = ov16_0225C35C, - [BATTLE_COMMAND_UPDATE_EXP_GAUGE] = ov16_0225C370, - [BATTLE_COMMAND_PLAY_FAINTING_SEQUENCE] = ov16_0225C384, - [BATTLE_COMMAND_PLAY_SOUND] = ov16_0225C398, - [BATTLE_COMMAND_FADE_OUT] = ov16_0225C3AC, - [BATTLE_COMMAND_TOGGLE_VANISH] = ov16_0225C3BC, - [BATTLE_COMMAND_SET_STATUS_ICON] = ov16_0225C3D0, - [BATTLE_COMMAND_TRAINER_MESSAGE] = ov16_0225C3E4, - [BATTLE_COMMAND_PRINT_RECALL_MESSAGE] = ov16_0225C3F8, - [BATTLE_COMMAND_PRINT_SEND_OUT_MESSAGE] = ov16_0225C40C, - [BATTLE_COMMAND_PRINT_BATTLE_START_MESSAGE] = ov16_0225C420, - [BATTLE_COMMAND_PRINT_LEAD_MON_MESSAGE] = ov16_0225C430, - [BATTLE_COMMAND_PLAY_LEVEL_UP_ANIMATION] = ov16_0225C444, - [BATTLE_COMMAND_SET_ALERT_MESSAGE] = ov16_0225C454, - [BATTLE_COMMAND_REFRESH_HP_GAUGE] = ov16_0225C468, - [BATTLE_COMMAND_UPDATE_PARTY_MON] = ov16_0225C47C, + [BATTLE_COMMAND_SET_MOVE_ANIMATION] = BtlIOCmd_SetMoveAnimation, + [BATTLE_COMMAND_FLICKER_BATTLER] = BtlIOCmd_FlickerBattler, + [BATTLE_COMMAND_UPDATE_HP_GAUGE] = BtlIOCmd_UpdateHPGauge, + [BATTLE_COMMAND_UPDATE_EXP_GAUGE] = BtlIOCmd_UpdateExpGauge, + [BATTLE_COMMAND_PLAY_FAINTING_SEQUENCE] = BtlIOCmd_PlayFaintingSequence, + [BATTLE_COMMAND_PLAY_SOUND] = BtlIOCmd_PlaySound, + [BATTLE_COMMAND_FADE_OUT] = BtlIOCmd_FadeOut, + [BATTLE_COMMAND_TOGGLE_VANISH] = BtlIOCmd_ToggleVanish, + [BATTLE_COMMAND_SET_STATUS_ICON] = BtlIOCmd_SetStatusIcon, + [BATTLE_COMMAND_PRINT_TRAINER_MESSAGE] = BtlIOCmd_PrintTrainerMessage, + [BATTLE_COMMAND_PRINT_RECALL_MESSAGE] = BtlIOCmd_PrintRecallMessage, + [BATTLE_COMMAND_PRINT_SEND_OUT_MESSAGE] = BtlIOCmd_PrintSendOutMessage, + [BATTLE_COMMAND_PRINT_BATTLE_START_MESSAGE] = BtlIOCmd_PrintBattleStartMessage, + [BATTLE_COMMAND_PRINT_LEAD_MON_MESSAGE] = BtlIOCmd_PrintLeadMonMessage, + [BATTLE_COMMAND_PLAY_LEVEL_UP_ANIMATION] = BtlIOCmd_PlayLevelUpAnimation, + [BATTLE_COMMAND_SET_ALERT_MESSAGE] = BtlIOCmd_SetAlertMessage, + [BATTLE_COMMAND_REFRESH_HP_GAUGE] = BtlIOCmd_RefreshHPGauge, + [BATTLE_COMMAND_UPDATE_PARTY_MON] = BtlIOCmd_UpdatePartyMon, [BATTLE_COMMAND_40] = ov16_0225C558, - [BATTLE_COMMAND_STOP_GAUGE_ANIMATION] = ov16_0225C5B0, - [BATTLE_COMMAND_REFRESH_PARTY_STATUS] = ov16_0225C5E0, - [BATTLE_COMMAND_FORGET_MOVE] = ov16_0225C65C, - [BATTLE_COMMAND_SET_MOSAIC] = ov16_0225C670, - [BATTLE_COMMAND_CHANGE_WEATHER_FORM] = ov16_0225C684, - [BATTLE_COMMAND_UPDATE_BG] = ov16_0225C77C, - [BATTLE_COMMAND_CLEAR_TOUCH_SCREEN] = ov16_0225C79C, - [BATTLE_COMMAND_SHOW_BATTLE_START_PARTY_GAUGE] = ov16_0225C840, - [BATTLE_COMMAND_HIDE_BATTLE_START_PARTY_GAUGE] = ov16_0225C854, - [BATTLE_COMMAND_SHOW_PARTY_GAUGE] = ov16_0225C868, - [BATTLE_COMMAND_HIDE_PARTY_GAUGE] = ov16_0225C8A4, - [BATTLE_COMMAND_LOAD_PARTY_GAUGE_GRAPHICS] = ov16_0225C8E0, - [BATTLE_COMMAND_FREE_PARTY_GAUGE_GRAPHICS] = ov16_0225C91C, - [BATTLE_COMMAND_INCREMENT_RECORD] = ov16_0225C940, - [BATTLE_COMMAND_LINK_WAIT_MESSAGE] = ov16_0225C988, - [BATTLE_COMMAND_RESTORE_SPRITE] = ov16_0225C9AC, - [BATTLE_COMMAND_SPRITE_TO_OAM] = ov16_0225C9C0, - [BATTLE_COMMAND_OAM_TO_SPRITE] = ov16_0225C9D0, - [BATTLE_COMMAND_RESULT_MESSAGE] = ov16_0225C9E0, - [BATTLE_COMMAND_ESCAPE_MESSAGE] = ov16_0225C9F0, - [BATTLE_COMMAND_FORFEIT_MESSAGE] = ov16_0225CA14, - [BATTLE_COMMAND_REFRESH_SPRITE] = ov16_0225CA38, - [BATTLE_COMMAND_FLY_MOVE_HIT_SOUND_EFFECT] = ov16_0225CA4C, - [BATTLE_COMMAND_PLAY_MUSIC] = ov16_0225CA60, - [BATTLE_COMMAND_SUBMIT_RESULT] = ov16_0225CA74, - [BATTLE_COMMAND_CLEAR_MESSAGE_BOX] = ov16_0225CB80 + [BATTLE_COMMAND_STOP_GAUGE_ANIMATION] = BtlIOCmd_StopGaugeAnimation, + [BATTLE_COMMAND_REFRESH_PARTY_STATUS] = BtlIOCmd_RefreshPartyStatus, + [BATTLE_COMMAND_FORGET_MOVE] = BtlIOCmd_ForgetMove, + [BATTLE_COMMAND_SET_MOSAIC] = BtlIOCmd_SetMosaic, + [BATTLE_COMMAND_CHANGE_WEATHER_FORM] = BtlIOCmd_ChangeWeatherForm, + [BATTLE_COMMAND_UPDATE_BG] = BtlIOCmd_UpdateBg, + [BATTLE_COMMAND_CLEAR_TOUCH_SCREEN] = BtlIOCmd_ClearTouchScreen, + [BATTLE_COMMAND_SHOW_BATTLE_START_PARTY_GAUGE] = BtlIOCmd_ShowBattleStartPartyGauge, + [BATTLE_COMMAND_HIDE_BATTLE_START_PARTY_GAUGE] = BtlIOCmd_HideBattleStartPartyGauge, + [BATTLE_COMMAND_SHOW_PARTY_GAUGE] = BtlIOCmd_ShowPartyGauge, + [BATTLE_COMMAND_HIDE_PARTY_GAUGE] = BtlIOCmd_HidePartyGauge, + [BATTLE_COMMAND_LOAD_PARTY_GAUGE_GRAPHICS] = BtlIOCmd_LoadPartyGaugeGraphics, + [BATTLE_COMMAND_FREE_PARTY_GAUGE_GRAPHICS] = BtlIOCmd_FreePartyGaugeGraphics, + [BATTLE_COMMAND_INCREMENT_RECORD] = BtlIOCmd_IncrementRecord, + [BATTLE_COMMAND_PRINT_LINK_WAIT_MESSAGE] = BtlIOCmd_PrintLinkWaitMessage, + [BATTLE_COMMAND_RESTORE_SPRITE] = BtlIOCmd_RestoreSprite, + [BATTLE_COMMAND_SPRITE_TO_OAM] = BtlIOCmd_SpriteToOAM, + [BATTLE_COMMAND_OAM_TO_SPRITE] = BtlIOCmd_OAMToSprite, + [BATTLE_COMMAND_PRINT_RESULT_MESSAGE] = BtlIOCmd_PrintResultMessage, + [BATTLE_COMMAND_PRINT_ESCAPE_MESSAGE] = BtlIOCmd_PrintEscapeMessage, + [BATTLE_COMMAND_PRINT_FORFEIT_MESSAGE] = BtlIOCmd_PrintForfeitMessage, + [BATTLE_COMMAND_REFRESH_SPRITE] = BtlIOCmd_RefreshSprite, + [BATTLE_COMMAND_FLY_MOVE_HIT_SOUND_EFFECT] = BtlIOCmd_FlyMoveHitSoundEffect, + [BATTLE_COMMAND_PLAY_MUSIC] = BtlIOCmd_PlayMusic, + [BATTLE_COMMAND_SUBMIT_RESULT] = BtlIOCmd_SubmitResult, + [BATTLE_COMMAND_CLEAR_MESSAGE_BOX] = BtlIOCmd_ClearMessageBox }; void ov16_0225C0DC(BattleSystem *battleSys, BattlerData *battlerData) { if (battlerData->data[0]) { battlerData->unk_1A4 = 0; - Unk_ov16_0226F068[battlerData->data[0]](battleSys, battlerData); + sBattleCommands[battlerData->data[0]](battleSys, battlerData); } } @@ -252,95 +252,95 @@ void ov16_0225C104(BattleSystem *battleSys, BattlerData *battlerData, int param2 Heap_Free(battlerData); } -static void ov16_0225C138(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_None(BattleSystem *battleSys, BattlerData *battlerData) { return; } -static void ov16_0225C13C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetupUI(BattleSystem *battleSys, BattlerData *battlerData) { UISetupMessage *message = (UISetupMessage *)&battlerData->data[0]; - BattleSystem_SetSeedDTO(battleSys, message->unk_04); + BattleSystem_SetSeedDTO(battleSys, message->seed); ov16_0225CBB8(battleSys, battlerData); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 1); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_SETUP_UI); ZeroDataBuffer(battlerData); } -static void ov16_0225C168(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetEncounter(BattleSystem *battleSys, BattlerData *battlerData) { MonEncounterMessage *message = (MonEncounterMessage *)&battlerData->data[0]; - ov16_0225CBDC(battleSys, battlerData, message); + BattleDisplay_InitTaskSetEncounter(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C17C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowEncounter(BattleSystem *battleSys, BattlerData *battlerData) { MonShowMessage *message = (MonShowMessage *)&battlerData->data[0]; - ov16_0225CE1C(battleSys, battlerData, message); + BattleDisplay_InitTaskShowEncounter(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C190(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowPokemon(BattleSystem *battleSys, BattlerData *battlerData) { MonShowMessage *message = (MonShowMessage *)&battlerData->data[0]; - ov16_0225CF70(battleSys, battlerData, message); + BattleDisplay_InitTaskShowPokemon(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C1A4(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ReturnPokemon(BattleSystem *battleSys, BattlerData *battlerData) { MonReturnMessage *message = (MonReturnMessage *)&battlerData->data[0]; - ov16_0225D118(battleSys, battlerData, message); + BattleDisplay_InitTaskReturnPokemon(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C1B8(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_OpenCaptureBall(BattleSystem *battleSys, BattlerData *battlerData) { - CaptureOpenBallMessage *message = (CaptureOpenBallMessage *)&battlerData->data[0]; + OpenCaptureBallMessage *message = (OpenCaptureBallMessage *)&battlerData->data[0]; - ov16_0225D1C4(battleSys, battlerData, message); + BattleDisplay_InitTaskOpenCaptureBall(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C1CC(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_DeletePokemon(BattleSystem *battleSys, BattlerData *battlerData) { PokemonSprite_Delete(battlerData->monSprite); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 7); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_DELETE_POKEMON); ZeroDataBuffer(battlerData); } -static void ov16_0225C1F0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetTrainerEncounter(BattleSystem *battleSys, BattlerData *battlerData) { TrainerEncounterMessage *message = (TrainerEncounterMessage *)&battlerData->data[0]; - ov16_0225D228(battleSys, battlerData, message); + BattleDisplay_InitTaskSetTrainerEncounter(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C204(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ThrowTrainerBall(BattleSystem *battleSys, BattlerData *battlerData) { TrainerThrowBallMessage *message = (TrainerThrowBallMessage *)&battlerData->data[0]; - ov16_0225D360(battleSys, battlerData, message); + BattleDisplay_InitTaskThrowTrainerBall(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C218(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SlideTrainerOut(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225D3CC(battleSys, battlerData); + BattleDisplay_InitTaskSlideTrainerOut(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C228(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SlideTrainerIn(BattleSystem *battleSys, BattlerData *battlerData) { TrainerSlideInMessage *message = (TrainerSlideInMessage *)&battlerData->data[0]; - ov16_0225D414(battleSys, battlerData, message); + BattleDisplay_InitTaskSlideTrainerIn(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } @@ -354,7 +354,7 @@ static void BtlIOCmd_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *batt { HealthbarData *healthbar = (HealthbarData *)&battlerData->data[0]; - BattleDisplay_SlideHealthbarIn(battleSys, battlerData, healthbar); + BattleDisplay_InitTaskSlideHealthbarIn(battleSys, battlerData, healthbar); ZeroDataBuffer(battlerData); } @@ -366,64 +366,64 @@ static void BtlIOCmd_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *batt */ static void BtlIOCmd_SlideHealthbarOut(BattleSystem *battleSys, BattlerData *battlerData) { - BattleDisplay_SlideHealthbarOut(battleSys, battlerData); + BattleDisplay_InitTaskSlideHealthbarOut(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C260(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetCommandSelection(BattleSystem *battleSys, BattlerData *battlerData) { CommandSetMessage *message = (CommandSetMessage *)&battlerData->data[0]; - ov16_0223F290(battleSys, message->unk_29); - ov16_0225D5B8(battleSys, battlerData, message); + ov16_0223F290(battleSys, message->switchingOrCanPickCommandMask); + BattleDisplay_InitTaskSetCommandSelection(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C288(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowMoveSelectMenu(BattleSystem *battleSys, BattlerData *battlerData) { MoveSelectMenuMessage *message = (MoveSelectMenuMessage *)&battlerData->data[0]; - ov16_0225D698(battleSys, battlerData, message); + BattleDisplay_InitTaskShowMoveSelectMenu(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C29C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowTargetSelectMenu(BattleSystem *battleSys, BattlerData *battlerData) { TargetSelectMenuMessage *message = (TargetSelectMenuMessage *)&battlerData->data[0]; - ov16_0225D708(battleSys, battlerData, message); + BattleDisplay_InitTaskShowTargetSelectMenu(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C2B0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowBagMenu(BattleSystem *battleSys, BattlerData *battlerData) { BagMenuMessage *message = (BagMenuMessage *)&battlerData->data[0]; - ov16_0225D794(battleSys, battlerData, message); + BattleDisplay_InitTaskShowBagMenu(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C2C4(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowPartyMenu(BattleSystem *battleSys, BattlerData *battlerData) { PartyMenuMessage *message = (PartyMenuMessage *)&battlerData->data[0]; - ov16_0225D840(battleSys, battlerData, message); + BattleDisplay_InitTaskShowPartyMenu(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C2D8(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowYesNoMenu(BattleSystem *battleSys, BattlerData *battlerData) { YesNoMenuMessage *message = (YesNoMenuMessage *)&battlerData->data[0]; - ov16_0225D8AC(battleSys, battlerData, message); + BattleDisplay_InitTaskShowYesNoMenu(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C2EC(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintAttackMessage(BattleSystem *battleSys, BattlerData *battlerData) { AttackMsgMessage *message = (AttackMsgMessage *)&battlerData->data[0]; - ov16_0225D8F0(battleSys, battlerData, message); + BattleDisplay_PrintAttackMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } @@ -441,168 +441,168 @@ static void BtlIOCmd_PrintBattleMessage(BattleSystem *battleSys, BattlerData *ba ZeroDataBuffer(battlerData); } -static void ov16_0225C314(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetMoveAnimation(BattleSystem *battleSys, BattlerData *battlerData) { - MoveAnimation *v0 = (MoveAnimation *)&battlerData->data[0]; + MoveAnimation *moveAnim = (MoveAnimation *)&battlerData->data[0]; - ov16_0225D9A8(battleSys, battlerData, v0); + BattleDisplay_InitTaskSetMoveAnimation(battleSys, battlerData, moveAnim); ZeroDataBuffer(battlerData); } -static void ov16_0225C328(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_FlickerBattler(BattleSystem *battleSys, BattlerData *battlerData) { - if (PokemonSprite_GetAttribute(battlerData->monSprite, MON_SPRITE_HIDE) == 1) { - BattleController_EmitClearCommand(battleSys, battlerData->battler, 23); + if (PokemonSprite_GetAttribute(battlerData->monSprite, MON_SPRITE_HIDE) == TRUE) { + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_FLICKER_BATTLER); } else { - ov16_0225DA44(battleSys, battlerData); + BattleDisplay_InitTaskFlickerBattler(battleSys, battlerData); } ZeroDataBuffer(battlerData); } -static void ov16_0225C35C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_UpdateHPGauge(BattleSystem *battleSys, BattlerData *battlerData) { HPGaugeUpdateMessage *message = (HPGaugeUpdateMessage *)&battlerData->data[0]; - ov16_0225DA74(battleSys, battlerData, message); + BattleDisplay_InitTaskUpdateHPGauge(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C370(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_UpdateExpGauge(BattleSystem *battleSys, BattlerData *battlerData) { ExpGaugeUpdateMessage *message = (ExpGaugeUpdateMessage *)&battlerData->data[0]; - ov16_0225DB00(battleSys, battlerData, message); + BattleDisplay_InitTaskUpdateExpGauge(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C384(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PlayFaintingSequence(BattleSystem *battleSys, BattlerData *battlerData) { FaintingSequenceMessage *message = (FaintingSequenceMessage *)&battlerData->data[0]; - ov16_0225DB74(battleSys, battlerData, message); + BattleDisplay_InitTaskPlayFaintingSequence(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C398(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PlaySound(BattleSystem *battleSys, BattlerData *battlerData) { PlaySoundMessage *message = (PlaySoundMessage *)&battlerData->data[0]; - ov16_0225DC4C(battleSys, battlerData, message); + BattleDisplay_PlaySound(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C3AC(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_FadeOut(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225DC7C(battleSys, battlerData); + BattleDisplay_InitTaskFadeOut(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C3BC(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ToggleVanish(BattleSystem *battleSys, BattlerData *battlerData) { - ToggleVanishMessage *v0 = (ToggleVanishMessage *)&battlerData->data[0]; + ToggleVanishMessage *message = (ToggleVanishMessage *)&battlerData->data[0]; - ov16_0225DCB0(battleSys, battlerData, v0); + BattleDisplay_InitTaskToggleVanish(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C3D0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetStatusIcon(BattleSystem *battleSys, BattlerData *battlerData) { - SetStatusIconMessage *v0 = (SetStatusIconMessage *)&battlerData->data[0]; + SetStatusIconMessage *message = (SetStatusIconMessage *)&battlerData->data[0]; - ov16_0225DD44(battleSys, battlerData, v0); + BattleDisplay_SetStatusIcon(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C3E4(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintTrainerMessage(BattleSystem *battleSys, BattlerData *battlerData) { TrainerMsgMessage *message = (TrainerMsgMessage *)&battlerData->data[0]; - ov16_0225DD7C(battleSys, battlerData, message); + BattleDisplay_PrintTrainerMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C3F8(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintRecallMessage(BattleSystem *battleSys, BattlerData *battlerData) { - RecallMsgMessage *v0 = (RecallMsgMessage *)&battlerData->data[0]; + RecallMsgMessage *message = (RecallMsgMessage *)&battlerData->data[0]; - ov16_0225DDD8(battleSys, battlerData, v0); + BattleDisplay_PrintRecallMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C40C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintSendOutMessage(BattleSystem *battleSys, BattlerData *battlerData) { - SendOutMsgMessage *v0 = (SendOutMsgMessage *)&battlerData->data[0]; + SendOutMsgMessage *message = (SendOutMsgMessage *)&battlerData->data[0]; - ov16_0225DE30(battleSys, battlerData, v0); + BattleDisplay_PrintSendOutMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C420(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintBattleStartMessage(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225DE88(battleSys, battlerData); + BattleDisplay_PrintBattleStartMessage(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C430(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintLeadMonMessage(BattleSystem *battleSys, BattlerData *battlerData) { - LeadMonMsgMessage *v0 = (LeadMonMsgMessage *)&battlerData->data[0]; + LeadMonMsgMessage *message = (LeadMonMsgMessage *)&battlerData->data[0]; - ov16_0225DEDC(battleSys, battlerData, v0); + BattleDisplay_PrintLeadMonMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C444(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PlayLevelUpAnimation(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225DF34(battleSys, battlerData); + BattleDisplay_InitTaskPlayLevelUpAnimation(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C454(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetAlertMessage(BattleSystem *battleSys, BattlerData *battlerData) { - AlertMsgMessage *v0 = (AlertMsgMessage *)&battlerData->data[0]; + AlertMsgMessage *message = (AlertMsgMessage *)&battlerData->data[0]; - ov16_0225DF6C(battleSys, battlerData, v0); + BattleDisplay_SetAlertMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C468(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_RefreshHPGauge(BattleSystem *battleSys, BattlerData *battlerData) { - RefreshHPGaugeMessage *v0 = (RefreshHPGaugeMessage *)&battlerData->data[0]; + RefreshHPGaugeMessage *message = (RefreshHPGaugeMessage *)&battlerData->data[0]; - ov16_0225E008(battleSys, battlerData, v0); + BattleDisplay_RefreshHPGauge(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C47C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_UpdatePartyMon(BattleSystem *battleSys, BattlerData *battlerData) { UpdatePartyMonMessage *message = (UpdatePartyMonMessage *)&battlerData->data[0]; - int v1; - Pokemon *v2 = BattleSystem_GetPartyPokemon(battleSys, battlerData->battler, message->partySlot); + int i; + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battlerData->battler, message->partySlot); - if ((message->statusVolatile & 0x200000) == 0) { - for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { - if ((message->mimickedMoveSlot & FlagIndex(v1)) == 0) { - Pokemon_SetValue(v2, MON_DATA_MOVE1 + v1, (u8 *)&message->moves[v1]); - Pokemon_SetValue(v2, MON_DATA_MOVE1_PP + v1, (u8 *)&message->ppCur[v1]); + if ((message->statusVolatile & VOLATILE_CONDITION_TRANSFORM) == FALSE) { + for (i = 0; i < LEARNED_MOVES_MAX; i++) { + if ((message->mimickedMoveSlot & FlagIndex(i)) == FALSE) { + Pokemon_SetValue(mon, MON_DATA_MOVE1 + i, (u8 *)&message->moves[i]); + Pokemon_SetValue(mon, MON_DATA_MOVE1_PP + i, (u8 *)&message->ppCur[i]); } } } - if ((message->knockedOffItemsMask & FlagIndex(message->partySlot)) == 0) { - Pokemon_SetValue(v2, MON_DATA_HELD_ITEM, (u8 *)&message->heldItem); + if ((message->knockedOffItemsMask & FlagIndex(message->partySlot)) == FALSE) { + Pokemon_SetValue(mon, MON_DATA_HELD_ITEM, (u8 *)&message->heldItem); } - Pokemon_SetValue(v2, MON_DATA_HP, (u8 *)&message->curHP); - Pokemon_SetValue(v2, MON_DATA_STATUS, (u8 *)&message->status); + Pokemon_SetValue(mon, MON_DATA_HP, (u8 *)&message->curHP); + Pokemon_SetValue(mon, MON_DATA_STATUS, (u8 *)&message->status); if (message->updateForm) { - Pokemon_SetValue(v2, MON_DATA_FORM, (u8 *)&message->formNum); + Pokemon_SetValue(mon, MON_DATA_FORM, (u8 *)&message->formNum); } if (message->updateStats) { - Pokemon_SetValue(v2, MON_DATA_ABILITY, (u8 *)&message->ability); - Pokemon_CalcLevelAndStats(v2); + Pokemon_SetValue(mon, MON_DATA_ABILITY, (u8 *)&message->ability); + Pokemon_CalcLevelAndStats(mon); } BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); @@ -611,14 +611,12 @@ static void ov16_0225C47C(BattleSystem *battleSys, BattlerData *battlerData) static void ov16_0225C558(BattleSystem *battleSys, BattlerData *battlerData) { - u32 battleType; - UnkStruct_ov16_02268A14 *v1; + u32 battleType = BattleSystem_GetBattleType(battleSys); + UnkStruct_ov16_02268A14 *v1 = ov16_0223E02C(battleSys); - battleType = BattleSystem_GetBattleType(battleSys); - v1 = ov16_0223E02C(battleSys); - - if (battlerData->bootState == 0x0) { - if ((battleType & BATTLE_TYPE_2vs2) || (((battleType & BATTLE_TYPE_2vs2) == 0) && (battlerData->battlerType != 4))) { + if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) { + if ((battleType & BATTLE_TYPE_2vs2) + || ((battleType & BATTLE_TYPE_2vs2) == FALSE && battlerData->battlerType != BATTLER_TYPE_PLAYER_SIDE_SLOT_2)) { ov16_0226947C(v1, -0xd00, 0); } } @@ -627,7 +625,7 @@ static void ov16_0225C558(BattleSystem *battleSys, BattlerData *battlerData) ZeroDataBuffer(battlerData); } -static void ov16_0225C5B0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_StopGaugeAnimation(BattleSystem *battleSys, BattlerData *battlerData) { ov16_022675AC(&battlerData->healthbar); ov16_022647D8(battlerData); @@ -635,25 +633,25 @@ static void ov16_0225C5B0(BattleSystem *battleSys, BattlerData *battlerData) ZeroDataBuffer(battlerData); } -static void ov16_0225C5E0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_RefreshPartyStatus(BattleSystem *battleSys, BattlerData *battlerData) { RefreshPartyStatusMessage *message = (RefreshPartyStatusMessage *)&battlerData->data[0]; - Pokemon *v1; - int v2, v3, v4; + Pokemon *mon; + int i, partyCount, ability; u32 v5 = 0; - v3 = BattleSystem_GetPartyCount(battleSys, battlerData->battler); + partyCount = BattleSystem_GetPartyCount(battleSys, battlerData->battler); - for (v2 = 0; v2 < v3; v2++) { - v1 = BattleSystem_GetPartyPokemon(battleSys, battlerData->battler, v2); + for (i = 0; i < partyCount; i++) { + mon = BattleSystem_GetPartyPokemon(battleSys, battlerData->battler, i); - if (message->ability == 104) { - v4 = ABILITY_NONE; + if (message->ability == ABILITY_MOLD_BREAKER) { + ability = ABILITY_NONE; } else { - v4 = Pokemon_GetValue(v1, MON_DATA_ABILITY, NULL); + ability = Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL); } - if ((message->move != 215) || ((message->move == 215) && (v4 != ABILITY_SOUNDPROOF))) { - Pokemon_SetValue(v1, MON_DATA_STATUS, (u8 *)&v5); + if (message->move != MOVE_HEAL_BELL || (message->move == MOVE_HEAL_BELL && ability != ABILITY_SOUNDPROOF)) { + Pokemon_SetValue(mon, MON_DATA_STATUS, (u8 *)&v5); } } @@ -661,173 +659,168 @@ static void ov16_0225C5E0(BattleSystem *battleSys, BattlerData *battlerData) ZeroDataBuffer(battlerData); } -static void ov16_0225C65C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ForgetMove(BattleSystem *battleSys, BattlerData *battlerData) { - ForgetMoveMessage *v0 = (ForgetMoveMessage *)&battlerData->data[0]; + ForgetMoveMessage *message = (ForgetMoveMessage *)&battlerData->data[0]; - ov16_0225E0BC(battleSys, battlerData, v0); + BattleDisplay_InitTaskForgetMove(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C670(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SetMosaic(BattleSystem *battleSys, BattlerData *battlerData) { - MosaicSetMessage *v0 = (MosaicSetMessage *)&battlerData->data[0]; + MosaicSetMessage *message = (MosaicSetMessage *)&battlerData->data[0]; - ov16_0225E0F4(battleSys, battlerData, v0); + BattleDisplay_InitTaskSetMosaic(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225C684(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ChangeWeatherForm(BattleSystem *battleSys, BattlerData *battlerData) { MonChangeFormMessage *message = (MonChangeFormMessage *)&battlerData->data[0]; - PokemonSpriteTemplate v1; - PokemonSpriteTemplate *v2; - int v3; - int v4; + PokemonSpriteTemplate monSpriteTemplate; + PokemonSpriteTemplate *monSpriteTemplatePtr; + int y; + int face; - if (battlerData->battlerType & 0x1) { - v4 = 2; + if (battlerData->battlerType & BATTLER_THEM) { + face = FACE_FRONT; } else { - v4 = 0; + face = FACE_BACK; } - BuildPokemonSpriteTemplate(&v1, message->species, message->gender, v4, message->isShiny, message->formNum, message->personality); + BuildPokemonSpriteTemplate(&monSpriteTemplate, message->species, message->gender, face, message->isShiny, message->formNum, message->personality); - v2 = PokemonSprite_GetTemplate(battlerData->monSprite); - *v2 = v1; + monSpriteTemplatePtr = PokemonSprite_GetTemplate(battlerData->monSprite); + *monSpriteTemplatePtr = monSpriteTemplate; PokemonSprite_ScheduleReloadFromNARC(battlerData->monSprite); - CharacterSprite_LoadPokemonSprite(v2->narcID, v2->character, HEAP_ID_BATTLE, PokemonSpriteData_GetTiles(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler), message->personality, FALSE, v4, v2->spindaSpots); + CharacterSprite_LoadPokemonSprite(monSpriteTemplatePtr->narcID, monSpriteTemplatePtr->character, HEAP_ID_BATTLE, PokemonSpriteData_GetTiles(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler), message->personality, FALSE, face, monSpriteTemplatePtr->spindaSpots); - PokemonSpriteData_SetNarcID(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, v2->narcID); - PokemonSpriteData_SetPalette(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, v2->palette); + PokemonSpriteData_SetNarcID(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, monSpriteTemplatePtr->narcID); + PokemonSpriteData_SetPalette(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, monSpriteTemplatePtr->palette); - v3 = LoadPokemonSpriteYOffset(message->species, message->gender, v4, message->formNum, message->personality); - PokemonSpriteData_SetYOffset(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, v3); + y = LoadPokemonSpriteYOffset(message->species, message->gender, face, message->formNum, message->personality); + PokemonSpriteData_SetYOffset(BattleSystem_GetPokemonSpriteData(battleSys), battlerData->battler, y); - v3 = ov12_022384CC(battlerData->battlerType, 1) + v3; - PokemonSprite_SetAttribute(battlerData->monSprite, MON_SPRITE_Y_CENTER, v3); + y = ov12_022384CC(battlerData->battlerType, 1) + y; + PokemonSprite_SetAttribute(battlerData->monSprite, MON_SPRITE_Y_CENTER, y); BattleController_EmitClearCommand(battleSys, battlerData->battler, message->command); ZeroDataBuffer(battlerData); } -static void ov16_0225C77C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_UpdateBg(BattleSystem *battleSys, BattlerData *battlerData) { ov16_0223EF8C(battleSys); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 46); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_UPDATE_BG); ZeroDataBuffer(battlerData); } -static void ov16_0225C79C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ClearTouchScreen(BattleSystem *battleSys, BattlerData *battlerData) { - if (battlerData->bootState == 0x0) { - { - UnkStruct_ov16_02268A14 *v0; - int v1; - Healthbar *healthbar; - NARC *v3; - NARC *v4; + if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) { + UnkStruct_ov16_02268A14 *v0; + int partner; + Healthbar *healthbar; + NARC *v3 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); + NARC *v4 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); + v0 = ov16_0223E02C(battleSys); - v3 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); - v4 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); - v0 = ov16_0223E02C(battleSys); + ov16_02268C04(v3, v4, v0, 0, 0, NULL); + ov16_0226BCCC(v0, 0); - ov16_02268C04(v3, v4, v0, 0, 0, NULL); - ov16_0226BCCC(v0, 0); + NARC_dtor(v3); + NARC_dtor(v4); - NARC_dtor(v3); - NARC_dtor(v4); + partner = BattleSystem_GetPartner(battleSys, battlerData->battler); - v1 = BattleSystem_GetPartner(battleSys, battlerData->battler); - - if (v1 != battlerData->battler) { - healthbar = BattleSystem_GetHealthbar(battleSys, v1); - ov16_0226846C(healthbar); - } - - ov16_022675AC(&battlerData->healthbar); - ov16_02269218(v0); - ov16_022647D8(battlerData); + if (partner != battlerData->battler) { + healthbar = BattleSystem_GetHealthbar(battleSys, partner); + ov16_0226846C(healthbar); } + + ov16_022675AC(&battlerData->healthbar); + ov16_02269218(v0); + ov16_022647D8(battlerData); } - BattleController_EmitClearCommand(battleSys, battlerData->battler, 47); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_CLEAR_TOUCH_SCREEN); ZeroDataBuffer(battlerData); } -static void ov16_0225C840(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData) { - PartyGaugeData *v0 = (PartyGaugeData *)&battlerData->data[0]; + PartyGaugeData *data = (PartyGaugeData *)&battlerData->data[0]; - BattleDisplay_ShowBattleStartPartyGauge(battleSys, battlerData, v0); + BattleDisplay_InitTaskShowBattleStartPartyGauge(battleSys, battlerData, data); ZeroDataBuffer(battlerData); } -static void ov16_0225C854(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_HideBattleStartPartyGauge(BattleSystem *battleSys, BattlerData *battlerData) { - PartyGaugeData *v0 = (PartyGaugeData *)&battlerData->data[0]; + PartyGaugeData *data = (PartyGaugeData *)&battlerData->data[0]; - BattleDisplay_HideBattleStartPartyGauge(battleSys, battlerData, v0); + BattleDisplay_InitTaskHideBattleStartPartyGauge(battleSys, battlerData, data); ZeroDataBuffer(battlerData); } -static void ov16_0225C868(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ShowPartyGauge(BattleSystem *battleSys, BattlerData *battlerData) { - PartyGaugeData *v0 = (PartyGaugeData *)&battlerData->data[0]; + PartyGaugeData *data = (PartyGaugeData *)&battlerData->data[0]; if (BattleSystem_GetBattlerSide(battleSys, battlerData->battler)) { - BattleDisplay_ShowPartyGauge(battleSys, battlerData, v0); + BattleDisplay_InitTaskShowPartyGauge(battleSys, battlerData, data); } else { - BattleController_EmitClearCommand(battleSys, battlerData->battler, 50); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_SHOW_PARTY_GAUGE); } ZeroDataBuffer(battlerData); } -static void ov16_0225C8A4(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_HidePartyGauge(BattleSystem *battleSys, BattlerData *battlerData) { - PartyGaugeData *v0 = (PartyGaugeData *)&battlerData->data[0]; + PartyGaugeData *data = (PartyGaugeData *)&battlerData->data[0]; if (BattleSystem_GetBattlerSide(battleSys, battlerData->battler)) { - BattleDisplay_HidePartyGauge(battleSys, battlerData, v0); + BattleDisplay_InitTaskHidePartyGauge(battleSys, battlerData, data); } else { - BattleController_EmitClearCommand(battleSys, battlerData->battler, 51); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_HIDE_PARTY_GAUGE); } ZeroDataBuffer(battlerData); } -static void ov16_0225C8E0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_LoadPartyGaugeGraphics(BattleSystem *battleSys, BattlerData *battlerData) { - SpriteSystem *v0 = BattleSystem_GetSpriteSystem(battleSys); - SpriteManager *v1 = BattleSystem_GetSpriteManager(battleSys); - PaletteData *v2 = BattleSystem_GetPaletteData(battleSys); + SpriteSystem *spriteSys = BattleSystem_GetSpriteSystem(battleSys); + SpriteManager *spriteMan = BattleSystem_GetSpriteManager(battleSys); + PaletteData *paletteData = BattleSystem_GetPaletteData(battleSys); - PartyGauge_LoadGraphics(v0, v1, v2); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 52); + PartyGauge_LoadGraphics(spriteSys, spriteMan, paletteData); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_LOAD_PARTY_GAUGE_GRAPHICS); ZeroDataBuffer(battlerData); } -static void ov16_0225C91C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_FreePartyGaugeGraphics(BattleSystem *battleSys, BattlerData *battlerData) { - SpriteManager *v0 = BattleSystem_GetSpriteManager(battleSys); + SpriteManager *spriteMan = BattleSystem_GetSpriteManager(battleSys); - PartyGauge_FreeGraphics(v0); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 53); + PartyGauge_FreeGraphics(spriteMan); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_FREE_PARTY_GAUGE_GRAPHICS); ZeroDataBuffer(battlerData); } -static void ov16_0225C940(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_IncrementRecord(BattleSystem *battleSys, BattlerData *battlerData) { RecordIncrementMessage *message = (RecordIncrementMessage *)&battlerData->data[0]; - if (message->battlerType == 0) { - if (battlerData->bootState == 0x0) { + if (message->battlerType == BATTLER_TYPE_SOLO_PLAYER) { + if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) { BattleSystem_TryIncrementRecordValue(battleSys, message->record); } } else { - if (battlerData->bootState != 0x0) { + if (battlerData->bootState != BATTLER_BOOT_STATE_NORMAL) { BattleSystem_TryIncrementRecordValue(battleSys, message->record); } } @@ -836,121 +829,120 @@ static void ov16_0225C940(BattleSystem *battleSys, BattlerData *battlerData) ZeroDataBuffer(battlerData); } -static void ov16_0225C988(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintLinkWaitMessage(BattleSystem *battleSys, BattlerData *battlerData) { - LinkWaitMsgMessage *v0 = (LinkWaitMsgMessage *)&battlerData->data[0]; + LinkWaitMsgMessage *message = (LinkWaitMsgMessage *)&battlerData->data[0]; - ov16_0223F638(battleSys, v0->unk_02, v0->unk_04); - ov16_0225E23C(battleSys, battlerData); + ov16_0223F638(battleSys, message->unk_02, message->unk_04); + BattleDisplay_PrintLinkWaitMessage(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C9AC(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_RestoreSprite(BattleSystem *battleSys, BattlerData *battlerData) { - MoveAnimation *v0 = (MoveAnimation *)&battlerData->data[0]; + MoveAnimation *moveAnim = (MoveAnimation *)&battlerData->data[0]; - ov16_0225E294(battleSys, battlerData, v0); + BattleDisplay_RestoreSprite(battleSys, battlerData, moveAnim); ZeroDataBuffer(battlerData); } -static void ov16_0225C9C0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SpriteToOAM(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225E2C8(battleSys, battlerData); + BattleDisplay_InitTaskSpriteToOAM(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C9D0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_OAMToSprite(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225E300(battleSys, battlerData); + BattleDisplay_InitTaskOAMToSprite(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C9E0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintResultMessage(BattleSystem *battleSys, BattlerData *battlerData) { - ov16_0225E338(battleSys, battlerData); + BattleDisplay_PrintResultMessage(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225C9F0(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintEscapeMessage(BattleSystem *battleSys, BattlerData *battlerData) { EscapeMsgMessage *message = (EscapeMsgMessage *)&battlerData->data[0]; ov16_0223F638(battleSys, message->unk_02, message->unk_04); - ov16_0225E38C(battleSys, battlerData, message); + BattleDisplay_PrintEscapeMessage(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225CA14(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PrintForfeitMessage(BattleSystem *battleSys, BattlerData *battlerData) { ForfeitMsgMessage *message = (ForfeitMsgMessage *)&battlerData->data[0]; ov16_0223F638(battleSys, message->unk_02, message->unk_04); - ov16_0225E3E0(battleSys, battlerData); + BattleDisplay_PrintForfeitMessage(battleSys, battlerData); ZeroDataBuffer(battlerData); } -static void ov16_0225CA38(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_RefreshSprite(BattleSystem *battleSys, BattlerData *battlerData) { - MoveAnimation *v0 = (MoveAnimation *)&battlerData->data[0]; + MoveAnimation *moveAnim = (MoveAnimation *)&battlerData->data[0]; - ov16_0225E434(battleSys, battlerData, v0); + BattleDisplay_RefreshSprite(battleSys, battlerData, moveAnim); ZeroDataBuffer(battlerData); } -static void ov16_0225CA4C(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_FlyMoveHitSoundEffect(BattleSystem *battleSys, BattlerData *battlerData) { - MoveHitSoundMessage *v0 = (MoveHitSoundMessage *)&battlerData->data[0]; + MoveHitSoundMessage *message = (MoveHitSoundMessage *)&battlerData->data[0]; - ov16_0225E468(battleSys, battlerData, v0); + BattleDisplay_FlyMoveHitSoundEffect(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225CA60(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_PlayMusic(BattleSystem *battleSys, BattlerData *battlerData) { - MusicPlayMessage *v0 = (MusicPlayMessage *)&battlerData->data[0]; + MusicPlayMessage *message = (MusicPlayMessage *)&battlerData->data[0]; - ov16_0225E4C8(battleSys, battlerData, v0); + BattleDisplay_PlayMusic(battleSys, battlerData, message); ZeroDataBuffer(battlerData); } -static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_SubmitResult(BattleSystem *battleSys, BattlerData *battlerData) { ResultSubmitMessage *message = (ResultSubmitMessage *)&battlerData->data[0]; - Party *v1; - Pokemon *v2; - int v3; - int v4; - int v5 = 0; - int v6 = 0; - u8 v7; + Party *party; + Pokemon *mon; + int slot; + int battler; + int playerHP = 0; + int enemyHP = 0; ov16_0223F638(battleSys, message->unk_02, message->unk_08); if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) { BattleSystem_SetResultMask(battleSys, message->resultMask); } else { - for (v4 = 0; v4 < BattleSystem_GetMaxBattlers(battleSys); v4++) { - v1 = BattleSystem_GetParty(battleSys, v4); + for (battler = 0; battler < BattleSystem_GetMaxBattlers(battleSys); battler++) { + party = BattleSystem_GetParty(battleSys, battler); - for (v3 = 0; v3 < Party_GetCurrentCount(v1); v3++) { - v2 = Party_GetPokemonBySlotIndex(v1, v3); + for (slot = 0; slot < Party_GetCurrentCount(party); slot++) { + mon = Party_GetPokemonBySlotIndex(party, slot); - if ((Pokemon_GetValue(v2, MON_DATA_SPECIES, NULL)) && (Pokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { - if (BattleSystem_GetBattlerSide(battleSys, v4)) { - v6 += Pokemon_GetValue(v2, MON_DATA_HP, NULL); + if (Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL) && Pokemon_GetValue(mon, MON_DATA_IS_EGG, NULL) == FALSE) { + if (BattleSystem_GetBattlerSide(battleSys, battler)) { + enemyHP += Pokemon_GetValue(mon, MON_DATA_HP, NULL); } else { - v5 += Pokemon_GetValue(v2, MON_DATA_HP, NULL); + playerHP += Pokemon_GetValue(mon, MON_DATA_HP, NULL); } } } } - if ((v5 == 0) && (v6 == 0)) { - BattleSystem_SetResultMask(battleSys, 0x3); - } else if (v5 == 0) { - BattleSystem_SetResultMask(battleSys, 0x2); + if (playerHP == 0 && enemyHP == 0) { + BattleSystem_SetResultMask(battleSys, BATTLE_RESULT_DRAW); + } else if (playerHP == 0) { + BattleSystem_SetResultMask(battleSys, BATTLE_RESULT_LOSE); } else { - BattleSystem_SetResultMask(battleSys, 0x1); + BattleSystem_SetResultMask(battleSys, BATTLE_RESULT_WIN); } } @@ -958,14 +950,14 @@ static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *battlerData) ZeroDataBuffer(battlerData); } -static void ov16_0225CB80(BattleSystem *battleSys, BattlerData *battlerData) +static void BtlIOCmd_ClearMessageBox(BattleSystem *battleSys, BattlerData *battlerData) { - Window *v0 = BattleSystem_GetWindow(battleSys, 0); + Window *window = BattleSystem_GetWindow(battleSys, 0); - Window_FillTilemap(v0, 0xff); - Window_LoadTiles(v0); + Window_FillTilemap(window, 0xFF); + Window_LoadTiles(window); - BattleController_EmitClearCommand(battleSys, battlerData->battler, 66); + BattleController_EmitClearCommand(battleSys, battlerData->battler, BATTLE_COMMAND_CLEAR_MESSAGE_BOX); ZeroDataBuffer(battlerData); } diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index 2727ecc8d3..92303ddd96 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -2621,10 +2621,10 @@ static BOOL BtlCmd_ShowParty(BattleSystem *battleSys, BattleContext *battleCtx) if ((switchingMask & FlagIndex(battler)) == FALSE && (switchingMask & FlagIndex(partner)) == FALSE) { switchingMask |= FlagIndex(battler); - BattleController_EmitLinkWaitMessage(battleSys, battler); + BattleController_EmitPrintLinkWaitMessage(battleSys, battler); } } else if ((switchingMask & FlagIndex(battler)) == FALSE) { - BattleController_EmitLinkWaitMessage(battleSys, battler); + BattleController_EmitPrintLinkWaitMessage(battleSys, battler); } } @@ -2669,7 +2669,7 @@ static BOOL BtlCmd_WaitMonSelection(BattleSystem *battleSys, BattleContext *batt if ((battleCtx->battleStatusMask2 & (FlagIndex(battler) << SYSCTL_LINK_WAITING_SHIFT)) == FALSE) { battleCtx->battleStatusMask2 |= (FlagIndex(battler) << SYSCTL_LINK_WAITING_SHIFT); - BattleController_EmitLinkWaitMessage(battleSys, battler); + BattleController_EmitPrintLinkWaitMessage(battleSys, battler); } } } diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index c422c23d80..4aaa58d384 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -1489,16 +1489,16 @@ void ov16_0223F858(BattleSystem *battleSys, u8 *param1) } } -void ov16_0223F87C(BattleSystem *battleSys, u8 *param1) +void BattleSystem_SetBattlerTypes(BattleSystem *battleSys, u8 *battlerTypes) { int battler; for (battler = 0; battler < MAX_BATTLERS; battler++) { - param1[battler] = 0xFF; + battlerTypes[battler] = 0xFF; } for (battler = 0; battler < battleSys->maxBattlers; battler++) { - param1[battler] = BattlerData_GetBattlerType(battleSys->battlers[battler]); + battlerTypes[battler] = BattlerData_GetBattlerType(battleSys->battlers[battler]); } } diff --git a/src/battle/ov16_0223B140.c b/src/battle/ov16_0223B140.c index ba99ff01ba..81e33ae405 100644 --- a/src/battle/ov16_0223B140.c +++ b/src/battle/ov16_0223B140.c @@ -1129,7 +1129,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) battleSys->maxBattlers = i; for (i = 0; i < 4; i++) { - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); Party_Copy(dto->parties[i], battleSys->parties[i]); } @@ -1156,7 +1156,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) battleSys->maxBattlers = i; for (i = 0; i < 4; i++) { - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); Party_Copy(dto->parties[i], battleSys->parties[i]); } @@ -1178,7 +1178,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E264[v6][i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1209,7 +1209,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E260[v6][i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1238,7 +1238,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E560[i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1276,7 +1276,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E560[i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1304,7 +1304,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E560[i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1338,7 +1338,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) v2.unk_00 = i; v2.unk_01 = Unk_ov16_0226E25C[i]; battleSys->battlers[i] = ov16_0225BFFC(battleSys, &v2); - ov16_02263730(battleSys, battleSys->battlers[i]); + BattlerData_SetTaskFuncs(battleSys, battleSys->battlers[i]); } battleSys->maxBattlers = i; @@ -1570,7 +1570,7 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) for (v3 = 0; v3 < v4; v3++) { battlerData = BattleSystem_GetBattlerData(battleSys, v3); - if (((BattlerData_GetBootState(battlerData) == 0x0) && ((BattleSystem_GetBattleStatusMask(battleSys) & 0x10) == 0)) || ((BattleSystem_GetBattlerSide(battleSys, v3) == 0) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x10))) { + if (((BattlerData_GetBootState(battlerData) == BATTLER_BOOT_STATE_NORMAL) && ((BattleSystem_GetBattleStatusMask(battleSys) & 0x10) == 0)) || ((BattleSystem_GetBattlerSide(battleSys, v3) == 0) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x10))) { healthbar = BattlerData_GetHealthbar(battlerData); if (healthbar != NULL) { diff --git a/src/battle_anim/battle_anim_system.c b/src/battle_anim/battle_anim_system.c index ba79072188..9f7aa39ddd 100644 --- a/src/battle_anim/battle_anim_system.c +++ b/src/battle_anim/battle_anim_system.c @@ -12,12 +12,12 @@ #include "struct_decls/battle_system.h" #include "struct_defs/chatot_cry.h" +#include "struct_defs/move_animation.h" #include "battle/battle_anim_battler_context.h" #include "battle/battle_background_reference.h" #include "battle/battle_system.h" #include "battle/pokemon_sprite_data.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle_anim/battle_anim_helpers.h" #include "battle_anim/battle_anim_util.h" #include "battle_anim/battle_particle_util.h" @@ -438,7 +438,7 @@ BOOL BattleAnimSystem_StartMove(BattleAnimSystem *system, MoveAnimation *param1, system->context->terrain = param1->terrain; system->context->attacker = param1->attacker; system->context->defender = param1->defender; - system->context->transformed = param1->transformed; + system->context->isTransformed = param1->isTransformed; system->context->spriteSystem = battlerContext->spriteSystem; GF_ASSERT(battlerContext->spriteSystem != NULL); @@ -3610,7 +3610,7 @@ static void BattleAnimScriptCmd_PlayPokemonCry(BattleAnimSystem *system) form, pan, volume, - system->context->transformed, + system->context->isTransformed, system->heapID); } @@ -3945,7 +3945,7 @@ UnkStruct_ov12_02223764 *ov12_022234F8(BattleSystem *battleSys, enum HeapID heap v2->pokemonSpriteDataArray[v0] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, v0); } - ov16_0223F87C(battleSys, &(v2->unk_44[0])); + BattleSystem_SetBattlerTypes(battleSys, &(v2->unk_44[0])); ov16_0223F8AC(battleSys, &(v2->unk_48[0])); } diff --git a/src/battle_anim/ov12_022380BC.c b/src/battle_anim/ov12_022380BC.c index 0ffc148328..0f5489dffe 100644 --- a/src/battle_anim/ov12_022380BC.c +++ b/src/battle_anim/ov12_022380BC.c @@ -4,8 +4,6 @@ #include #include "battle_anim/const_ov12_0223B0A0.h" -#include "battle_anim/const_ov12_0223B0B8.h" -#include "battle_anim/const_ov12_0223B0DC.h" #include "battle_anim/struct_ov12_022380DC.h" #include "character_sprite.h" @@ -15,7 +13,7 @@ static void ov12_022380DC(UnkStruct_ov12_022380DC *param0, int param1, int param2, enum HeapID heapID); -const s16 Unk_ov12_0223B0B8[][3] = { +const s16 gEncounterCoords[][3] = { { 0x150, 0x70, 0xFFFFFFFFFFFFFE00 }, { 0xFFFFFFFFFFFFFFB0, 0x32, 0xFFFFFFFFFFFFFD80 }, { 0x13C, 0x70, 0xFFFFFFFFFFFFFE00 }, @@ -33,7 +31,7 @@ const s16 Unk_ov12_0223B0A0[][2] = { { 0xB0, 0xE0 } }; -const s16 Unk_ov12_0223B0DC[][3] = { +const s16 gSlideTrainerInCoords[][3] = { { 0xFFFFFFFFFFFFFFB0, 0x70, 0xFFFFFFFFFFFFFE00 }, { 0x150, 0x32, 0xFFFFFFFFFFFFFE00 }, { 0xFFFFFFFFFFFFFFB0, 0x70, 0xFFFFFFFFFFFFFE00 }, @@ -210,6 +208,6 @@ s16 ov12_022384CC(int param0, int param1) if (param1 == 0) { return Unk_ov12_0223B0A0[param0][0]; } else { - return Unk_ov12_0223B0B8[param0][param1]; + return gEncounterCoords[param0][param1]; } } diff --git a/src/overlay017/ov17_02243C28.c b/src/overlay017/ov17_02243C28.c index 4f2a82e35c..60a87d8efd 100644 --- a/src/overlay017/ov17_02243C28.c +++ b/src/overlay017/ov17_02243C28.c @@ -3,8 +3,9 @@ #include #include +#include "struct_defs/move_animation.h" + #include "battle/battle_anim_battler_context.h" -#include "battle/struct_ov16_02265BBC.h" #include "battle_anim/battle_anim_system.h" #include "overlay017/ov17_0223F7E4.h" #include "overlay017/ov17_022413D8.h" diff --git a/src/pokemon.c b/src/pokemon.c index 0af9f31652..85fdba2044 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3381,17 +3381,17 @@ void sub_0207697C(PokemonSpriteTemplate *param0, u16 param1) param0->personality = 0; } -static const SpriteTemplate Unk_020F05E4 = { - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - NNS_G2D_VRAM_TYPE_2DMAIN, - { 0x4E2F, 0x4E2A, 0x4E27, 0x4E27, 0xffffffff, 0xffffffff }, - 0x2, - 0x1 +static const SpriteTemplate sSpriteTemplateTrainer = { + .x = 0, + .y = 0, + .z = 0, + .animIdx = 0, + .priority = 0, + .plttIdx = 0, + .vramType = NNS_G2D_VRAM_TYPE_2DMAIN, + .resources = { 0x4E2F, 0x4E2A, 0x4E27, 0x4E27, 0xffffffff, 0xffffffff }, + .bgPriority = 2, + .vramTransfer = TRUE, }; static const int Unk_020F0588[] = { @@ -3403,46 +3403,46 @@ static const int Unk_020F0588[] = { 0x1 }; -ManagedSprite *sub_02076994(SpriteSystem *param0, SpriteManager *param1, PaletteData *param2, int param3, int param4, int param5, int param6, int param7, enum HeapID heapID) +ManagedSprite *SpriteSystem_NewManagedSpriteTrainer(SpriteSystem *spriteSys, SpriteManager *spriteMan, PaletteData *paletteData, int x, int y, int trainerClass, int face, int battlerType, enum HeapID heapID) { - SpriteTemplate v0; - ManagedSprite *v1; + SpriteTemplate spriteTemplate; + ManagedSprite *managedSprite; NARC *narc; UnkStruct_ov5_021DE5D0 v3; int v4 = 1; - sub_02076AAC(param5, param6, &v3); + sub_02076AAC(trainerClass, face, &v3); // TODO enum values? - if (param5 == 102) { + if (trainerClass == 102) { v4 = 2; } narc = NARC_ctor(v3.narcID, heapID); - SpriteSystem_LoadCharResObjFromOpenNarc(param0, param1, narc, v3.unk_04, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 20015 + param7); - SpriteSystem_LoadPaletteBufferFromOpenNarc(param2, PLTTBUF_MAIN_OBJ, param0, param1, narc, v3.unk_08, FALSE, v4, NNS_G2D_VRAM_TYPE_2DMAIN, 20010 + param7); - SpriteSystem_LoadCellResObjFromOpenNarc(param0, param1, narc, v3.unk_0C, FALSE, 20007 + param7); - SpriteSystem_LoadAnimResObjFromOpenNarc(param0, param1, narc, v3.unk_10, FALSE, 20007 + param7); + SpriteSystem_LoadCharResObjFromOpenNarc(spriteSys, spriteMan, narc, v3.unk_04, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 20015 + battlerType); + SpriteSystem_LoadPaletteBufferFromOpenNarc(paletteData, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, v3.unk_08, FALSE, v4, NNS_G2D_VRAM_TYPE_2DMAIN, 20010 + battlerType); + SpriteSystem_LoadCellResObjFromOpenNarc(spriteSys, spriteMan, narc, v3.unk_0C, FALSE, 20007 + battlerType); + SpriteSystem_LoadAnimResObjFromOpenNarc(spriteSys, spriteMan, narc, v3.unk_10, FALSE, 20007 + battlerType); NARC_dtor(narc); - v0 = Unk_020F05E4; + spriteTemplate = sSpriteTemplateTrainer; // TODO enum values? - v0.resources[0] = 20015 + param7; - v0.resources[1] = 20010 + param7; - v0.resources[2] = 20007 + param7; - v0.resources[3] = 20007 + param7; - v0.priority = Unk_020F0588[param7]; + spriteTemplate.resources[0] = 20015 + battlerType; + spriteTemplate.resources[1] = 20010 + battlerType; + spriteTemplate.resources[2] = 20007 + battlerType; + spriteTemplate.resources[3] = 20007 + battlerType; + spriteTemplate.priority = Unk_020F0588[battlerType]; - v1 = SpriteSystem_NewSprite(param0, param1, &v0); + managedSprite = SpriteSystem_NewSprite(spriteSys, spriteMan, &spriteTemplate); - Sprite_SetExplicitPaletteOffsetAutoAdjust(v1->sprite, 0); - ManagedSprite_SetPositionXY(v1, param3, param4); - ManagedSprite_TickFrame(v1); - ManagedSprite_SetAnimateFlag(v1, 1); + Sprite_SetExplicitPaletteOffsetAutoAdjust(managedSprite->sprite, 0); + ManagedSprite_SetPositionXY(managedSprite, x, y); + ManagedSprite_TickFrame(managedSprite); + ManagedSprite_SetAnimateFlag(managedSprite, TRUE); - return v1; + return managedSprite; } void sub_02076AAC(int param0, int param1, UnkStruct_ov5_021DE5D0 *param2)