mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-18 12:37:38 +01:00
205 lines
7.3 KiB
C
205 lines
7.3 KiB
C
|
#include "global.h"
|
||
|
#include "battle.h"
|
||
|
#include "battle_controllers.h"
|
||
|
#include "battle_message.h"
|
||
|
#include "battle_interface.h"
|
||
|
#include "battle_anim.h"
|
||
|
#include "battle_ai_script_commands.h"
|
||
|
#include "recorded_battle.h"
|
||
|
#include "pokemon.h"
|
||
|
#include "link.h"
|
||
|
#include "util.h"
|
||
|
#include "main.h"
|
||
|
#include "songs.h"
|
||
|
#include "sound.h"
|
||
|
#include "window.h"
|
||
|
#include "m4a.h"
|
||
|
#include "palette.h"
|
||
|
#include "task.h"
|
||
|
#include "text.h"
|
||
|
#include "string_util.h"
|
||
|
#include "bg.h"
|
||
|
#include "reshow_battle_screen.h"
|
||
|
#include "pokeball.h"
|
||
|
|
||
|
extern u32 gBattleExecBuffer;
|
||
|
extern u8 gActiveBank;
|
||
|
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
|
||
|
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
|
||
|
extern u8 gNoOfAllBanks;
|
||
|
extern bool8 gDoingBattleAnim;
|
||
|
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
|
||
|
extern void (*gPreBattleCallback1)(void);
|
||
|
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
|
||
|
extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
|
||
|
extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
|
||
|
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
|
||
|
extern struct SpriteTemplate gUnknown_0202499C;
|
||
|
extern u16 gScriptItemId;
|
||
|
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
|
||
|
extern u8 gBattleOutcome;
|
||
|
extern u16 gBattle_BG0_X;
|
||
|
extern u16 gBattle_BG0_Y;
|
||
|
extern u8 gBankInMenu;
|
||
|
extern u16 gUnknown_020243FC;
|
||
|
extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
|
||
|
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
|
||
|
extern u16 gPartnerTrainerId;
|
||
|
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
|
||
|
extern u8 gBankTarget;
|
||
|
extern u8 gAbsentBankFlags;
|
||
|
extern u8 gUnknown_020244B4[];
|
||
|
extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
|
||
|
extern struct UnusedControllerStruct gUnknown_02022D0C;
|
||
|
|
||
|
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||
|
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
|
||
|
extern const struct BattleMove gBattleMoves[];
|
||
|
|
||
|
extern void sub_81358F4(void);
|
||
|
extern void sub_8172EF0(u8 bank, struct Pokemon *mon);
|
||
|
extern void sub_806A068(u16, u8);
|
||
|
|
||
|
// this file's functions
|
||
|
void RecordedPlayerHandleGetMonData(void);
|
||
|
void RecordedPlayerHandleGetRawMonData(void);
|
||
|
void RecordedPlayerHandleSetMonData(void);
|
||
|
void RecordedPlayerHandleSetRawMonData(void);
|
||
|
void RecordedPlayerHandleLoadMonSprite(void);
|
||
|
void RecordedPlayerHandleSwitchInAnim(void);
|
||
|
void RecordedPlayerHandleReturnMonToBall(void);
|
||
|
void RecordedPlayerHandleDrawTrainerPic(void);
|
||
|
void RecordedPlayerHandleTrainerSlide(void);
|
||
|
void RecordedPlayerHandleTrainerSlideBack(void);
|
||
|
void RecordedPlayerHandleFaintAnimation(void);
|
||
|
void RecordedPlayerHandlePaletteFade(void);
|
||
|
void RecordedPlayerHandleSuccessBallThrowAnim(void);
|
||
|
void RecordedPlayerHandleBallThrowAnim(void);
|
||
|
void RecordedPlayerHandlePause(void);
|
||
|
void RecordedPlayerHandleMoveAnimation(void);
|
||
|
void RecordedPlayerHandlePrintString(void);
|
||
|
void RecordedPlayerHandlePrintStringPlayerOnly(void);
|
||
|
void RecordedPlayerHandleChooseAction(void);
|
||
|
void RecordedPlayerHandleUnknownYesNoBox(void);
|
||
|
void RecordedPlayerHandleChooseMove(void);
|
||
|
void RecordedPlayerHandleChooseItem(void);
|
||
|
void RecordedPlayerHandleChoosePokemon(void);
|
||
|
void RecordedPlayerHandleCmd23(void);
|
||
|
void RecordedPlayerHandleHealthBarUpdate(void);
|
||
|
void RecordedPlayerHandleExpUpdate(void);
|
||
|
void RecordedPlayerHandleStatusIconUpdate(void);
|
||
|
void RecordedPlayerHandleStatusAnimation(void);
|
||
|
void RecordedPlayerHandleStatusXor(void);
|
||
|
void RecordedPlayerHandleDataTransfer(void);
|
||
|
void RecordedPlayerHandleDMA3Transfer(void);
|
||
|
void RecordedPlayerHandlePlayBGM(void);
|
||
|
void RecordedPlayerHandleCmd32(void);
|
||
|
void RecordedPlayerHandleTwoReturnValues(void);
|
||
|
void RecordedPlayerHandleChosenMonReturnValue(void);
|
||
|
void RecordedPlayerHandleOneReturnValue(void);
|
||
|
void RecordedPlayerHandleOneReturnValue_Duplicate(void);
|
||
|
void RecordedPlayerHandleCmd37(void);
|
||
|
void RecordedPlayerHandleCmd38(void);
|
||
|
void RecordedPlayerHandleCmd39(void);
|
||
|
void RecordedPlayerHandleCmd40(void);
|
||
|
void RecordedPlayerHandleHitAnimation(void);
|
||
|
void RecordedPlayerHandleCmd42(void);
|
||
|
void RecordedPlayerHandleEffectivenessSound(void);
|
||
|
void RecordedPlayerHandlePlayFanfareOrBGM(void);
|
||
|
void RecordedPlayerHandleFaintingCry(void);
|
||
|
void RecordedPlayerHandleIntroSlide(void);
|
||
|
void RecordedPlayerHandleIntroTrainerBallThrow(void);
|
||
|
void RecordedPlayerHandleDrawPartyStatusSummary(void);
|
||
|
void RecordedPlayerHandleCmd49(void);
|
||
|
void RecordedPlayerHandleCmd50(void);
|
||
|
void RecordedPlayerHandleSpriteInvisibility(void);
|
||
|
void RecordedPlayerHandleBattleAnimation(void);
|
||
|
void RecordedPlayerHandleLinkStandbyMsg(void);
|
||
|
void RecordedPlayerHandleResetActionMoveSelection(void);
|
||
|
void RecordedPlayerHandleCmd55(void);
|
||
|
void nullsub_121(void);
|
||
|
|
||
|
void RecordedPlayerBufferRunCommand(void);
|
||
|
void RecordedPlayerBufferExecCompleted(void);
|
||
|
|
||
|
void (*const gRecordedPlayerBufferCommands[CONTOLLER_CMDS_COUNT])(void) =
|
||
|
{
|
||
|
RecordedPlayerHandleGetMonData,
|
||
|
RecordedPlayerHandleGetRawMonData,
|
||
|
RecordedPlayerHandleSetMonData,
|
||
|
RecordedPlayerHandleSetRawMonData,
|
||
|
RecordedPlayerHandleLoadMonSprite,
|
||
|
RecordedPlayerHandleSwitchInAnim,
|
||
|
RecordedPlayerHandleReturnMonToBall,
|
||
|
RecordedPlayerHandleDrawTrainerPic,
|
||
|
RecordedPlayerHandleTrainerSlide,
|
||
|
RecordedPlayerHandleTrainerSlideBack,
|
||
|
RecordedPlayerHandleFaintAnimation,
|
||
|
RecordedPlayerHandlePaletteFade,
|
||
|
RecordedPlayerHandleSuccessBallThrowAnim,
|
||
|
RecordedPlayerHandleBallThrowAnim,
|
||
|
RecordedPlayerHandlePause,
|
||
|
RecordedPlayerHandleMoveAnimation,
|
||
|
RecordedPlayerHandlePrintString,
|
||
|
RecordedPlayerHandlePrintStringPlayerOnly,
|
||
|
RecordedPlayerHandleChooseAction,
|
||
|
RecordedPlayerHandleUnknownYesNoBox,
|
||
|
RecordedPlayerHandleChooseMove,
|
||
|
RecordedPlayerHandleChooseItem,
|
||
|
RecordedPlayerHandleChoosePokemon,
|
||
|
RecordedPlayerHandleCmd23,
|
||
|
RecordedPlayerHandleHealthBarUpdate,
|
||
|
RecordedPlayerHandleExpUpdate,
|
||
|
RecordedPlayerHandleStatusIconUpdate,
|
||
|
RecordedPlayerHandleStatusAnimation,
|
||
|
RecordedPlayerHandleStatusXor,
|
||
|
RecordedPlayerHandleDataTransfer,
|
||
|
RecordedPlayerHandleDMA3Transfer,
|
||
|
RecordedPlayerHandlePlayBGM,
|
||
|
RecordedPlayerHandleCmd32,
|
||
|
RecordedPlayerHandleTwoReturnValues,
|
||
|
RecordedPlayerHandleChosenMonReturnValue,
|
||
|
RecordedPlayerHandleOneReturnValue,
|
||
|
RecordedPlayerHandleOneReturnValue_Duplicate,
|
||
|
RecordedPlayerHandleCmd37,
|
||
|
RecordedPlayerHandleCmd38,
|
||
|
RecordedPlayerHandleCmd39,
|
||
|
RecordedPlayerHandleCmd40,
|
||
|
RecordedPlayerHandleHitAnimation,
|
||
|
RecordedPlayerHandleCmd42,
|
||
|
RecordedPlayerHandleEffectivenessSound,
|
||
|
RecordedPlayerHandlePlayFanfareOrBGM,
|
||
|
RecordedPlayerHandleFaintingCry,
|
||
|
RecordedPlayerHandleIntroSlide,
|
||
|
RecordedPlayerHandleIntroTrainerBallThrow,
|
||
|
RecordedPlayerHandleDrawPartyStatusSummary,
|
||
|
RecordedPlayerHandleCmd49,
|
||
|
RecordedPlayerHandleCmd50,
|
||
|
RecordedPlayerHandleSpriteInvisibility,
|
||
|
RecordedPlayerHandleBattleAnimation,
|
||
|
RecordedPlayerHandleLinkStandbyMsg,
|
||
|
RecordedPlayerHandleResetActionMoveSelection,
|
||
|
RecordedPlayerHandleCmd55,
|
||
|
nullsub_121
|
||
|
};
|
||
|
|
||
|
void nullsub_120(void)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void SetBankFuncToRecordedPlayerBufferRunCommand(void)
|
||
|
{
|
||
|
gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand;
|
||
|
}
|
||
|
|
||
|
void RecordedPlayerBufferRunCommand(void)
|
||
|
{
|
||
|
if (gBattleExecBuffer & gBitTable[gActiveBank])
|
||
|
{
|
||
|
if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(gRecordedPlayerBufferCommands))
|
||
|
gRecordedPlayerBufferCommands[gBattleBufferA[gActiveBank][0]]();
|
||
|
else
|
||
|
RecordedPlayerBufferExecCompleted();
|
||
|
}
|
||
|
}
|