diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-30 02:54:50 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-31 07:58:09 +0800 |
commit | 045331d139f04169df59f4550fd2f5fadac14a58 (patch) | |
tree | d2788306fa202a3d5559a253f52c38fcb961032d /include | |
parent | 604347808138a0514933b3b994ac0f4eb62237a8 (diff) |
ported battle_controllers from pokeem
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 30 | ||||
-rw-r--r-- | include/battle_2.h | 1 | ||||
-rw-r--r-- | include/battle_ai_script_commands.h | 4 | ||||
-rw-r--r-- | include/battle_controllers.h | 114 | ||||
-rw-r--r-- | include/battle_message.h | 16 | ||||
-rw-r--r-- | include/battle_util.h | 1 | ||||
-rw-r--r-- | include/cable_club.h | 13 | ||||
-rw-r--r-- | include/constants/battle.h | 2 | ||||
-rw-r--r-- | include/link.h | 10 | ||||
-rw-r--r-- | include/link_rfu.h | 1 | ||||
-rw-r--r-- | include/party_menu.h | 1 | ||||
-rw-r--r-- | include/pokemon.h | 2 |
12 files changed, 104 insertions, 91 deletions
diff --git a/include/battle.h b/include/battle.h index ae17cdca0..f919c4e0d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -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 diff --git a/include/battle_2.h b/include/battle_2.h index 72fcb0e11..cf20bcd25 100644 --- a/include/battle_2.h +++ b/include/battle_2.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]; diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h index 3786d4a8c..12df776be 100644 --- a/include/battle_ai_script_commands.h +++ b/include/battle_ai_script_commands.h @@ -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); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 577bce485..758a6e52f 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -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); diff --git a/include/battle_message.h b/include/battle_message.h index df2653756..ffc9d5bb7 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -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]; diff --git a/include/battle_util.h b/include/battle_util.h index a062f0743..88b35e1a4 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -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 diff --git a/include/cable_club.h b/include/cable_club.h new file mode 100644 index 000000000..401cfacf1 --- /dev/null +++ b/include/cable_club.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 diff --git a/include/constants/battle.h b/include/constants/battle.h index 36fb4d447..b424103a1 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.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 diff --git a/include/link.h b/include/link.h index e1a4e106b..190a9d96a 100644 --- a/include/link.h +++ b/include/link.h @@ -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 diff --git a/include/link_rfu.h b/include/link_rfu.h index 7e0ea2068..928ae380e 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.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 diff --git a/include/party_menu.h b/include/party_menu.h index 2ae33175c..3c88f75e0 100644 --- a/include/party_menu.h +++ b/include/party_menu.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 diff --git a/include/pokemon.h b/include/pokemon.h index d2eefd390..6c20b967d 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -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); |