start recorded player controller
This commit is contained in:
204
src/battle_controller_recorded_player.c
Normal file
204
src/battle_controller_recorded_player.c
Normal file
@@ -0,0 +1,204 @@
|
||||
#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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user