mirror of
https://github.com/pret/pokeruby.git
synced 2026-09-26 13:33:06 -04:00
222 lines
7.0 KiB
C
222 lines
7.0 KiB
C
#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,
|
|
};
|
|
|
|
enum {
|
|
// For commands sent from the core battle engine to a controller.
|
|
B_COMM_TO_CONTROLLER, // gBattleBufferA
|
|
|
|
// For replies sent from a controller to the core battle engine.
|
|
B_COMM_TO_ENGINE, // gBattleBufferB
|
|
|
|
// During local play, a controller must directly mark itself as
|
|
// inactive when it's done processing, whether or not it sends
|
|
// a reply. During multiplayer, it must NOT directly mark itself
|
|
// as inactive, but instead send one of these, with the player's
|
|
// multiplayer ID as data.
|
|
B_COMM_CONTROLLER_IS_DONE
|
|
};
|
|
|
|
enum {
|
|
BALL_NO_SHAKES,
|
|
BALL_1_SHAKE,
|
|
BALL_2_SHAKES,
|
|
BALL_3_SHAKES_FAIL,
|
|
BALL_3_SHAKES_SUCCESS,
|
|
BALL_TRAINER_BLOCK,
|
|
};
|
|
|
|
#define INSTANT_HP_BAR_DROP 0x7FFF
|
|
|
|
struct HpAndStatus
|
|
{
|
|
u16 hp;
|
|
u32 status;
|
|
};
|
|
|
|
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_YESNOBOX,
|
|
CONTROLLER_CHOOSEMOVE,
|
|
CONTROLLER_OPENBAG,
|
|
CONTROLLER_CHOOSEPOKEMON,
|
|
CONTROLLER_23,
|
|
CONTROLLER_HEALTHBARUPDATE,
|
|
CONTROLLER_EXPUPDATE,
|
|
CONTROLLER_STATUSICONUPDATE,
|
|
CONTROLLER_STATUSANIMATION,
|
|
CONTROLLER_STATUSXOR,
|
|
CONTROLLER_DATATRANSFER,
|
|
CONTROLLER_DMA3TRANSFER,
|
|
CONTROLLER_PLAYBGM,
|
|
CONTROLLER_32,
|
|
CONTROLLER_TWORETURNVALUES,
|
|
CONTROLLER_CHOSENMONRETURNVALUE,
|
|
CONTROLLER_ONERETURNVALUE,
|
|
CONTROLLER_ONERETURNVALUE_DUPLICATE,
|
|
CONTROLLER_CLEARUNKVAR,
|
|
CONTROLLER_SETUNKVAR,
|
|
CONTROLLER_CLEARUNKFLAG,
|
|
CONTROLLER_TOGGLEUNKFLAG,
|
|
CONTROLLER_HITANIMATION,
|
|
CONTROLLER_CANTSWITCH,
|
|
CONTROLLER_PLAYSE,
|
|
CONTROLLER_PLAYFANFAREORBGM,
|
|
CONTROLLER_FAINTINGCRY,
|
|
CONTROLLER_INTROSLIDE,
|
|
CONTROLLER_INTROTRAINERBALLTHROW,
|
|
CONTROLLER_DRAWPARTYSTATUSSUMMARY,
|
|
CONTROLLER_HIDEPARTYSTATUSSUMMARY,
|
|
CONTROLLER_ENDBOUNCE,
|
|
CONTROLLER_SPRITEINVISIBILITY,
|
|
CONTROLLER_BATTLEANIMATION,
|
|
CONTROLLER_LINKSTANDBYMSG,
|
|
CONTROLLER_RESETACTIONMOVESELECTION,
|
|
CONTROLLER_ENDLINKBATTLE,
|
|
/*new controllers should go here*/
|
|
CONTROLLER_TERMINATOR_NOP,
|
|
CONTROLLER_CMDS_COUNT
|
|
};
|
|
|
|
struct DisableStruct;
|
|
|
|
// emitters
|
|
void HandleLinkBattleSetup(void);
|
|
void SetUpBattleVarsAndBirchPoochyena();
|
|
void sub_800B950(void);
|
|
void InitLinkBtlControllers(void);
|
|
void PrepareBufferDataTransferLink(u8 a, u16, u8 *c);
|
|
void sub_800C35C(void);
|
|
void BtlController_EmitGetMonData(u8 a, u8 b, u8 c);
|
|
void BtlController_EmitGetRawMonData(u8 a, u8 b, u8 c);
|
|
void BtlController_EmitLoadMonSprite(u8 a);
|
|
void BtlController_EmitSwitchInAnim(u8, u8, u8);
|
|
void BtlController_EmitReturnMonToBall(u8 a, u8 b);
|
|
void BtlController_EmitDrawTrainerPic(u8 a);
|
|
void BtlController_EmitTrainerSlide(u8 a);
|
|
void BtlController_EmitTrainerSlideBack(u8 a);
|
|
void BtlController_EmitFaintAnimation(u8 a);
|
|
void BtlController_EmitPaletteFade(u8 a);
|
|
void BtlController_EmitSuccessBallThrowAnim(u8 a);
|
|
void BtlController_EmitBallThrowAnim(u8 a, u8 b);
|
|
void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g);
|
|
void BtlController_EmitPrintString(u8 a, u16 b);
|
|
void BtlController_EmitPrintSelectionString(u8 a, u16 stringID);
|
|
void BtlController_EmitChooseAction(u8 a, u8 b, u16 c);
|
|
void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d);
|
|
void BtlController_EmitChooseItem(u8 a, u8 *b);
|
|
void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e);
|
|
void BtlController_EmitCmd23(u8 a);
|
|
void BtlController_EmitHealthBarUpdate(u8 a, u16 b);
|
|
void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c);
|
|
void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c);
|
|
void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c);
|
|
void BtlController_EmitStatusXor(u8 a, u8 b);
|
|
void BtlController_EmitDataTransfer(u8, u16, u8 *);
|
|
void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c);
|
|
void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c);
|
|
void BtlController_EmitOneReturnValue(u8 a, u16 b);
|
|
void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b);
|
|
void BtlController_EmitCmd37(u8 a);
|
|
void BtlController_EmitCmd38(u8 a, u8 b);
|
|
void BtlController_EmitCmd39(u8 a);
|
|
void BtlController_EmitCmd40(u8 a);
|
|
void BtlController_EmitHitAnimation(u8 a);
|
|
void BtlController_EmitCmd42(u8 a);
|
|
void BtlController_EmitPlaySE(u8 a, u16 b);
|
|
void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b);
|
|
void BtlController_EmitFaintingCry(u8 a);
|
|
void BtlController_EmitIntroSlide(u8 bufferId, u8 environmentId);
|
|
void BtlController_EmitIntroTrainerBallThrow(u8 a);
|
|
void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
|
|
void BtlController_EmitHidePartyStatusSummary(u8 a);
|
|
void BtlController_EmitEndBounceEffect(u8 a);
|
|
void BtlController_EmitSpriteInvisibility(u8 a, u8 b);
|
|
void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c);
|
|
void BtlController_EmitLinkStandbyMsg(u8 a, u8 b);
|
|
void BtlController_EmitResetActionMoveSelection(u8 a, u8 b);
|
|
void BtlController_EmitCmd55(u8 a, u8 b);
|
|
|
|
#endif // GUARD_BATTLE_CONTROLLERS_H
|