ported battle_controllers from pokeem
This commit is contained in:
+19
-11
@@ -29,9 +29,9 @@
|
||||
#define SIDE_PLAYER 0x0
|
||||
#define SIDE_OPPONENT 0x1
|
||||
|
||||
#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
|
||||
#define GET_BANK_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE))
|
||||
#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
|
||||
#define GET_BATTLER_POSITION(battler)((gBattlerPositions[battler]))
|
||||
#define GET_BATTLER_SIDE(battler)((GetBattlerPosition(battler) & BIT_SIDE))
|
||||
#define GET_BATTLER_SIDE2(battler)((GET_BATTLER_POSITION(battler) & BIT_SIDE))
|
||||
|
||||
#define TRAINER_OPPONENT_3FE 0x3FE
|
||||
#define TRAINER_OPPONENT_C00 0xC00
|
||||
@@ -567,11 +567,11 @@ struct BattleStruct
|
||||
u8 field_A6;
|
||||
u8 field_A7;
|
||||
u16 hpOnSwitchout[2];
|
||||
u32 savedBattleTypeFlags;
|
||||
u8 abilityPreventingSwitchout;
|
||||
u8 hpScale;
|
||||
u8 synchronizeMoveEffect;
|
||||
u8 field_B3;
|
||||
u8 field_AF;
|
||||
u32 savedBattleTypeFlags; // TODO: Is it correct to place it here?
|
||||
u8 field_B4;
|
||||
u8 field_B5;
|
||||
u8 field_B6;
|
||||
@@ -780,13 +780,13 @@ struct BattleScripting
|
||||
u8 animArg2;
|
||||
u16 tripleKickPower;
|
||||
u8 atk49_state;
|
||||
u8 bankWithAbility;
|
||||
u8 battlerWithAbility;
|
||||
u8 multihitMoveEffect;
|
||||
u8 bank;
|
||||
u8 battler;
|
||||
u8 animTurn;
|
||||
u8 animTargetsHit;
|
||||
u8 statChanger;
|
||||
u8 field_1B;
|
||||
bool8 statAnimPlayed;
|
||||
u8 atk23_state;
|
||||
u8 battleStyle;
|
||||
u8 atk6C_state;
|
||||
@@ -795,12 +795,10 @@ struct BattleScripting
|
||||
u8 reshowMainState;
|
||||
u8 reshowHelperState;
|
||||
u8 field_23;
|
||||
u8 field_24;
|
||||
u8 windowsType; // TODO: what does this field do in firered?
|
||||
u8 multiplayerId;
|
||||
};
|
||||
|
||||
extern struct BattleScripting gBattleScripting;
|
||||
|
||||
// functions
|
||||
|
||||
// battle_1
|
||||
@@ -954,6 +952,8 @@ extern u16 gMoveToLearn;
|
||||
extern u16 gBattleMovePower;
|
||||
extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
|
||||
extern u16 gCurrentMove;
|
||||
extern u16 gChosenMove;
|
||||
extern u16 gCalledMove;
|
||||
extern u8 gCritMultiplier;
|
||||
extern u16 gBattleWeather;
|
||||
extern u8 gLastUsedAbility;
|
||||
@@ -978,5 +978,13 @@ extern bool8 gDoingBattleAnim;
|
||||
extern void *gUnknown_3005EE0[];
|
||||
extern u8 *gUnknown_2022BB8;
|
||||
extern u8 *gUnknown_2022BBC;
|
||||
extern void (*gBattleMainFunc)(void);
|
||||
extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
|
||||
extern u32 gUnknown_2022B54;
|
||||
extern u8 gUnknown_2023DDC;
|
||||
extern u8 gBattlerAttacker;
|
||||
extern u8 gEffectBattler;
|
||||
extern u8 gUnknown_2023D72;
|
||||
extern struct BattleScripting gBattleScripting;
|
||||
|
||||
#endif // GUARD_BATTLE_H
|
||||
|
||||
@@ -47,6 +47,7 @@ bool8 TryRunFromBattle(u8 bank);
|
||||
void sub_800FD9C(void);
|
||||
void sub_80120C4(struct Sprite *);
|
||||
void sub_8012100(struct Sprite *);
|
||||
void nullsub_12(void);
|
||||
|
||||
extern const u8 gStatusConditionString_PoisonJpn[8];
|
||||
extern const u8 gStatusConditionString_SleepJpn[8];
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern u8 sBattler_AI;
|
||||
|
||||
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
|
||||
void BattleAI_HandleItemUseBeforeAISetup(void);
|
||||
void BattleAI_SetupAIData(u8 defaultScoreMoves);
|
||||
u8 BattleAI_ChooseMoveOrAction(void);
|
||||
void ClearBankMoveHistory(u8 bank);
|
||||
|
||||
@@ -162,8 +162,8 @@ enum
|
||||
CONTROLLER_INTROSLIDE,
|
||||
CONTROLLER_INTROTRAINERBALLTHROW,
|
||||
CONTROLLER_DRAWPARTYSTATUSSUMMARY,
|
||||
CONTROLLER_49,
|
||||
CONTROLLER_50,
|
||||
CONTROLLER_HIDEPARTYSTATUSSUMMARY,
|
||||
CONTROLLER_ENDBOUNCE,
|
||||
CONTROLLER_SPRITEINVISIBILITY,
|
||||
CONTROLLER_BATTLEANIMATION,
|
||||
CONTROLLER_LINKSTANDBYMSG,
|
||||
@@ -177,68 +177,53 @@ enum
|
||||
|
||||
// general functions
|
||||
void HandleLinkBattleSetup(void);
|
||||
void SetUpBattleVarsAndBirchZigzagoon(void);
|
||||
void sub_8032768(void);
|
||||
void sub_8033648(void);
|
||||
void SetUpBattleVars(void);
|
||||
void sub_800D30C(void);
|
||||
void sub_800DD28(void);
|
||||
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
|
||||
|
||||
// emitters
|
||||
void BtlController_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);
|
||||
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
||||
void BtlController_EmitLoadMonSprite(u8 bufferId);
|
||||
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
||||
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitDrawTrainerPic(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlide(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlideBack(u8 bufferId);
|
||||
void BtlController_EmitFaintAnimation(u8 bufferId);
|
||||
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
|
||||
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr);
|
||||
void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8* arg1);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
|
||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
||||
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
||||
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
|
||||
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
||||
void BtlController_EmitHitAnimation(u8 bufferId);
|
||||
void BtlController_EmitCmd42(u8 bufferId);
|
||||
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
||||
void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId);
|
||||
void BtlController_EmitFaintingCry(u8 bufferId);
|
||||
void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
|
||||
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
|
||||
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
|
||||
void BtlController_EmitHidePartyStatusSummary(u8 bufferId);
|
||||
void BtlController_EmitEndBounceEffect(u8 bufferId);
|
||||
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
||||
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
||||
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
||||
void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
|
||||
|
||||
// player controller
|
||||
void SetControllerToPlayer(void);
|
||||
@@ -251,6 +236,7 @@ void c3_0802FDF4(u8 taskId);
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
|
||||
void ActionSelectionDestroyCursorAt(u8 cursorPos);
|
||||
void InitMoveSelectionsVarsAndStrings(void);
|
||||
void nullsub_13(void);
|
||||
|
||||
// recorded player controller
|
||||
void SetControllerToRecordedPlayer(void);
|
||||
@@ -264,11 +250,11 @@ void SetControllerToPlayerPartner(void);
|
||||
// safari controller
|
||||
void SetControllerToSafari(void);
|
||||
|
||||
// wally controller
|
||||
void SetControllerToWally(void);
|
||||
// pokedude controller
|
||||
void SetControllerToPokedude(void);
|
||||
|
||||
// recorded opponent controller
|
||||
void SetControllerToRecordedOpponent(void);
|
||||
// oak controller
|
||||
void SetControllerToOakOrOldman(void);
|
||||
|
||||
// link opponent
|
||||
void SetControllerToLinkOpponent(void);
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
#define B_TXT_EFF_ABILITY 0x1B
|
||||
#define B_TXT_TRAINER1_CLASS 0x1C
|
||||
#define B_TXT_TRAINER1_NAME 0x1D
|
||||
#define B_TXT_1E 0x1E // trainer name for a link player
|
||||
#define B_TXT_1F 0x1F // trainer name for a link player
|
||||
#define B_TXT_20 0x20 // trainer name for a link player
|
||||
#define B_TXT_21 0x21 // trainer name for a link player
|
||||
#define B_TXT_22 0x22 // trainer name for a link player
|
||||
#define B_TXT_LINK_PLAYER_NAME 0x1E
|
||||
#define B_TXT_LINK_PARTNER_NAME 0x1F
|
||||
#define B_TXT_LINK_OPPONENT1_NAME 0x20
|
||||
#define B_TXT_LINK_OPPONENT2_NAME 0x21
|
||||
#define B_TXT_LINK_SCR_TRAINER_NAME 0x22
|
||||
#define B_TXT_PLAYER_NAME 0x23
|
||||
#define B_TXT_TRAINER1_LOSE_TEXT 0x24
|
||||
#define B_TXT_TRAINER1_WIN_TEXT 0x25
|
||||
@@ -196,7 +196,7 @@
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
||||
struct StringInfoBattle
|
||||
struct BattleMsgData
|
||||
{
|
||||
u16 currentMove;
|
||||
u16 originallyUsedMove;
|
||||
@@ -205,7 +205,7 @@ struct StringInfoBattle
|
||||
u8 scrActive;
|
||||
u8 unk1605E;
|
||||
u8 hpScale;
|
||||
u8 StringBank;
|
||||
u8 itemEffectBattler;
|
||||
u8 moveType;
|
||||
u8 abilities[4];
|
||||
u8 textBuffs[3][0x10];
|
||||
@@ -220,6 +220,8 @@ u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
|
||||
void BattlePutTextOnWindow(const u8* text, u8 arg1);
|
||||
bool8 sub_80D89B0(u16);
|
||||
|
||||
extern struct BattleMsgData *gBattleMsgDataPtr;
|
||||
|
||||
#define TEXT_BUFF_ARRAY_COUNT 16
|
||||
|
||||
extern u8 gDisplayedStringBattle[300];
|
||||
|
||||
@@ -88,5 +88,6 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget);
|
||||
u8 IsMonDisobedient(void);
|
||||
void MarkBufferBankForExecution(u8 battlerId);
|
||||
void sub_80174B8(u8 battlerId);
|
||||
void sub_8017298(u8 battlerId);
|
||||
|
||||
#endif // GUARD_BATTLE_UTIL_H
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef GUARD_CABLE_CLUB_H
|
||||
#define GUARD_CABLE_CLUB_H
|
||||
|
||||
#include "task.h"
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
// Exported ROM declarations
|
||||
void sub_8081A90(u8 taskId);
|
||||
|
||||
#endif //GUARD_CABLE_CLUB_H
|
||||
@@ -53,7 +53,7 @@
|
||||
#define BATTLE_TYPE_MULTI 0x0040
|
||||
#define BATTLE_TYPE_SAFARI 0x0080
|
||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_OLDMAN_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_ROAMER 0x0400
|
||||
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
|
||||
|
||||
+6
-4
@@ -145,6 +145,7 @@ extern struct LinkPlayer gLinkPlayers[];
|
||||
extern u16 word_3002910[];
|
||||
extern bool8 gReceivedRemoteLinkPlayers;
|
||||
extern bool8 gLinkVSyncDisabled;
|
||||
extern u8 gWirelessCommType;
|
||||
|
||||
extern u8 gUnknown_3003F84;
|
||||
extern u64 gSioMlt_Recv;
|
||||
@@ -199,15 +200,16 @@ void sub_8011BD0(void);
|
||||
u8 sub_800ABAC(void);
|
||||
u8 sub_800ABBC(void);
|
||||
void sub_800AC34(void);
|
||||
void sub_8009804(void);
|
||||
bool8 sub_800AA48(void);
|
||||
void sub_800A5BC(void);
|
||||
void OpenLink(void);
|
||||
bool8 IsLinkMaster(void);
|
||||
void CheckShouldAdvanceLinkState(void);
|
||||
void sub_800AA80(u8);
|
||||
void sub_80098D8(void);
|
||||
void CloseLink(void);
|
||||
bool8 sub_800A4BC(void);
|
||||
bool8 IsLinkTaskFinished(void);
|
||||
bool32 sub_800B270(void);
|
||||
void sub_800B388(void);
|
||||
void sub_8054A28(void);
|
||||
void sub_800B1F4(void);
|
||||
|
||||
#endif // GUARD_LINK_H
|
||||
|
||||
@@ -18,5 +18,6 @@ void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
||||
void MEvent_CreateTask_Leader(u8);
|
||||
void sub_80F9E2C(void * data);
|
||||
u8 sub_8116DE0(void);
|
||||
void sub_80FBB4C(void);
|
||||
|
||||
#endif //GUARD_LINK_RFU_H
|
||||
|
||||
@@ -63,5 +63,6 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc);
|
||||
u8 GetItemEffectType(u16 itemId);
|
||||
u8 pokemon_order_func(u8);
|
||||
void sub_8127CAC(void);
|
||||
void sub_8127DA8(u8 battlerId, u8 multiplayerFlag);
|
||||
|
||||
#endif // GUARD_PARTY_MENU_H
|
||||
|
||||
+1
-1
@@ -651,7 +651,7 @@ bool8 IsTradedMon(struct Pokemon *mon);
|
||||
bool8 IsOtherTrainer(u32 otId, u8 *otName);
|
||||
void MonRestorePP(struct Pokemon *mon);
|
||||
void BoxMonRestorePP(struct BoxPokemon *boxMon);
|
||||
void sub_8044348(void);
|
||||
void SetMonPreventsSwitchingString(void);
|
||||
void SetWildMonHeldItem(void);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
u8 *GetTrainerPartnerName(void);
|
||||
|
||||
Reference in New Issue
Block a user