summaryrefslogtreecommitdiff
path: root/include/battle_controllers.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/battle_controllers.h')
-rw-r--r--include/battle_controllers.h278
1 files changed, 278 insertions, 0 deletions
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
new file mode 100644
index 000000000..c69cb1017
--- /dev/null
+++ b/include/battle_controllers.h
@@ -0,0 +1,278 @@
+#ifndef GUARD_BATTLE_CONTROLLERS_H
+#define GUARD_BATTLE_CONTROLLERS_H
+
+enum
+{
+ REQUEST_ALL_BATTLE,
+ REQUEST_SPECIES_BATTLE,
+ REQUEST_HELDITEM_BATTLE,
+ REQUEST_MOVES_PP_BATTLE,
+ REQUEST_MOVE1_BATTLE,
+ REQUEST_MOVE2_BATTLE,
+ REQUEST_MOVE3_BATTLE,
+ REQUEST_MOVE4_BATTLE,
+ REQUEST_PP_DATA_BATTLE,
+ REQUEST_PPMOVE1_BATTLE,
+ REQUEST_PPMOVE2_BATTLE,
+ REQUEST_PPMOVE3_BATTLE,
+ REQUEST_PPMOVE4_BATTLE,
+ REQUEST_UNUSED_13_BATTLE,
+ REQUEST_UNUSED_14_BATTLE,
+ REQUEST_UNUSED_15_BATTLE,
+ REQUEST_UNUSED_16_BATTLE,
+ REQUEST_OTID_BATTLE,
+ REQUEST_EXP_BATTLE,
+ REQUEST_HP_EV_BATTLE,
+ REQUEST_ATK_EV_BATTLE,
+ REQUEST_DEF_EV_BATTLE,
+ REQUEST_SPEED_EV_BATTLE,
+ REQUEST_SPATK_EV_BATTLE,
+ REQUEST_SPDEF_EV_BATTLE,
+ REQUEST_FRIENDSHIP_BATTLE,
+ REQUEST_POKERUS_BATTLE,
+ REQUEST_MET_LOCATION_BATTLE,
+ REQUEST_MET_LEVEL_BATTLE,
+ REQUEST_MET_GAME_BATTLE,
+ REQUEST_POKEBALL_BATTLE,
+ REQUEST_ALL_IVS_BATTLE,
+ REQUEST_HP_IV_BATTLE,
+ REQUEST_ATK_IV_BATTLE,
+ REQUEST_DEF_IV_BATTLE,
+ REQUEST_SPEED_IV_BATTLE,
+ REQUEST_SPATK_IV_BATTLE,
+ REQUEST_SPDEF_IV_BATTLE,
+ REQUEST_PERSONALITY_BATTLE,
+ REQUEST_CHECKSUM_BATTLE,
+ REQUEST_STATUS_BATTLE,
+ REQUEST_LEVEL_BATTLE,
+ REQUEST_HP_BATTLE,
+ REQUEST_MAX_HP_BATTLE,
+ REQUEST_ATK_BATTLE,
+ REQUEST_DEF_BATTLE,
+ REQUEST_SPEED_BATTLE,
+ REQUEST_SPATK_BATTLE,
+ REQUEST_SPDEF_BATTLE,
+ REQUEST_COOL_BATTLE,
+ REQUEST_BEAUTY_BATTLE,
+ REQUEST_CUTE_BATTLE,
+ REQUEST_SMART_BATTLE,
+ REQUEST_TOUGH_BATTLE,
+ REQUEST_SHEEN_BATTLE,
+ REQUEST_COOL_RIBBON_BATTLE,
+ REQUEST_BEAUTY_RIBBON_BATTLE,
+ REQUEST_CUTE_RIBBON_BATTLE,
+ REQUEST_SMART_RIBBON_BATTLE,
+ REQUEST_TOUGH_RIBBON_BATTLE,
+};
+
+#define RESET_ACTION_MOVE_SELECTION 0
+#define RESET_ACTION_SELECTION 1
+#define RESET_MOVE_SELECTION 2
+
+#define BALL_NO_SHAKES 0
+#define BALL_1_SHAKE 1
+#define BALL_2_SHAKES 2
+#define BALL_3_SHAKES_FAIL 3
+#define BALL_3_SHAKES_SUCCESS 4
+#define BALL_TRAINER_BLOCK 5
+
+#define RET_VALUE_LEVELLED_UP 11
+
+#define INSTANT_HP_BAR_DROP 32767
+
+struct UnusedControllerStruct
+{
+ u8 field_0 : 7;
+ u8 flag_x80 : 1;
+};
+
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
+struct MovePpInfo
+{
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+};
+
+struct ChooseMoveStruct
+{
+ u16 moves[4];
+ u8 currentPp[4];
+ u8 maxPp[4];
+ u16 species;
+ u8 monType1;
+ u8 monType2;
+};
+
+enum
+{
+ CONTROLLER_GETMONDATA,
+ CONTROLLER_GETRAWMONDATA,
+ CONTROLLER_SETMONDATA,
+ CONTROLLER_SETRAWMONDATA,
+ CONTROLLER_LOADMONSPRITE,
+ CONTROLLER_SWITCHINANIM,
+ CONTROLLER_RETURNMONTOBALL,
+ CONTROLLER_DRAWTRAINERPIC,
+ CONTROLLER_TRAINERSLIDE,
+ CONTROLLER_TRAINERSLIDEBACK,
+ CONTROLLER_FAINTANIMATION,
+ CONTROLLER_PALETTEFADE,
+ CONTROLLER_SUCCESSBALLTHROWANIM,
+ CONTROLLER_BALLTHROWANIM,
+ CONTROLLER_PAUSE,
+ CONTROLLER_MOVEANIMATION,
+ CONTROLLER_PRINTSTRING,
+ CONTROLLER_PRINTSTRINGPLAYERONLY,
+ CONTROLLER_CHOOSEACTION,
+ CONTROLLER_UNKNOWNYESNOBOX,
+ CONTROLLER_CHOOSEMOVE,
+ CONTROLLER_OPENBAG,
+ CONTROLLER_CHOOSEPOKEMON,
+ CONTROLLER_23,
+ CONTROLLER_HEALTHBARUPDATE,
+ CONTROLLER_EXPUPDATE,
+ CONTROLLER_STATUSICONUPDATE,
+ CONTROLLER_STATUSANIMATION,
+ CONTROLLER_STATUSXOR,
+ CONTROLLER_DATATRANSFER,
+ CONTROLLER_DMA3TRANSFER,
+ CONTROLLER_31,
+ CONTROLLER_32,
+ CONTROLLER_TWORETURNVALUES,
+ CONTROLLER_CHOSENMONRETURNVALUE,
+ CONTROLLER_ONERETURNVALUE,
+ CONTROLLER_ONERETURNVALUE_DUPLICATE,
+ CONTROLLER_37,
+ CONTROLLER_38,
+ CONTROLLER_39,
+ CONTROLLER_40,
+ CONTROLLER_HITANIMATION,
+ CONTROLLER_42,
+ CONTROLLER_EFFECTIVENESSSOUND,
+ CONTROLLER_PLAYFANFAREORBGM,
+ CONTROLLER_FAINTINGCRY,
+ CONTROLLER_INTROSLIDE,
+ CONTROLLER_INTROTRAINERBALLTHROW,
+ CONTROLLER_DRAWPARTYSTATUSSUMMARY,
+ CONTROLLER_49,
+ CONTROLLER_50,
+ CONTROLLER_SPRITEINVISIBILITY,
+ CONTROLLER_BATTLEANIMATION,
+ CONTROLLER_LINKSTANDBYMSG,
+ CONTROLLER_RESETACTIONMOVESELECTION,
+ CONTROLLER_55,
+ /*new controllers should go here*/
+ CONTROLLER_TERMINATOR_NOP,
+ CONTROLLER_CMDS_COUNT
+};
+
+
+// general functions
+void HandleLinkBattleSetup(void);
+void SetUpBattleVarsAndBirchZigzagoon(void);
+void sub_8032768(void);
+void sub_8033648(void);
+void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
+
+// emitters
+void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
+void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
+void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
+void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
+void EmitLoadMonSprite(u8 bufferId);
+void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
+void EmitReturnMonToBall(u8 bufferId, u8 arg1);
+void EmitDrawTrainerPic(u8 bufferId);
+void EmitTrainerSlide(u8 bufferId);
+void EmitTrainerSlideBack(u8 bufferId);
+void EmitFaintAnimation(u8 bufferId);
+void EmitPaletteFade(u8 bufferId); // unused
+void EmitSuccessBallThrowAnim(u8 bufferId); // unused
+void EmitBallThrowAnim(u8 bufferId, u8 caseId);
+void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
+void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
+void EmitPrintString(u8 bufferId, u16 stringId);
+void EmitPrintSelectionString(u8 bufferId, u16 stringId);
+void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
+void EmitUnknownYesNoBox(u8 bufferId);
+void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
+void EmitChooseItem(u8 bufferId, u8* arg1);
+void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
+void EmitCmd23(u8 bufferId); // unused
+void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
+void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
+void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
+void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
+void EmitStatusXor(u8 bufferId, u8 b); // unused
+void EmitDataTransfer(u8 bufferId, u16 size, void *data);
+void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
+void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
+void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
+void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
+void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
+void EmitOneReturnValue(u8 bufferId, u16 arg1);
+void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
+void EmitCmd37(u8 bufferId); // unused
+void EmitCmd38(u8 bufferId, u8 b); // unused
+void EmitCmd39(u8 bufferId); // unused
+void EmitCmd40(u8 bufferId); // unused
+void EmitHitAnimation(u8 bufferId);
+void EmitCmd42(u8 bufferId);
+void EmitPlaySE(u8 bufferId, u16 songId);
+void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
+void EmitFaintingCry(u8 bufferId);
+void EmitIntroSlide(u8 bufferId, u8 terrainId);
+void EmitIntroTrainerBallThrow(u8 bufferId);
+void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
+void EmitCmd49(u8 bufferId);
+void EmitCmd50(u8 bufferId);
+void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
+void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
+void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
+void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
+void EmitCmd55(u8 bufferId, u8 arg1);
+
+// player controller
+void SetControllerToPlayer(void);
+void nullsub_21(void);
+void PlayerHandleGetRawMonData(void);
+void sub_80587B0(void);
+void sub_805CC00(struct Sprite *sprite);
+void SetCB2ToReshowScreenAfterMenu(void);
+void SetCB2ToReshowScreenAfterMenu2(void);
+void c3_0802FDF4(u8 taskId);
+void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
+void ActionSelectionDestroyCursorAt(u8 cursorPos);
+void InitMoveSelectionsVarsAndStrings(void);
+
+// recorded player controller
+void SetControllerToRecordedPlayer(void);
+
+// opponent controller
+void SetControllerToOpponent(void);
+
+// player partner controller
+void SetControllerToPlayerPartner(void);
+
+// safari controller
+void SetControllerToSafari(void);
+
+// wally controller
+void SetControllerToWally(void);
+
+// recorded opponent controller
+void SetControllerToRecordedOpponent(void);
+
+// link opponent
+void SetControllerToLinkOpponent(void);
+
+// link partner
+void SetControllerToLinkPartner(void);
+
+#endif // GUARD_BATTLE_CONTROLLERS_H