From b38a5a85d41354f3b0a867b2cd82f9ec3915f1f5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Mar 2021 15:37:28 -0500 Subject: Resolve link comm buffers in gBattleStruct --- include/battle.h | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 43f4c5115..3553c16c6 100644 --- a/include/battle.h +++ b/include/battle.h @@ -357,6 +357,15 @@ struct BattleResults extern struct BattleResults gBattleResults; +struct MultiPartnerEnigmaBerry +{ + u8 field_0; + u8 field_1; + u8 vsScreenHealthFlagsLo; + u8 vsScreenHealthFlagsHi; + struct BattleEnigmaBerry battleEnigmaBerry; +}; + struct BattleStruct { u8 turnEffectsTracker; @@ -440,13 +449,12 @@ struct BattleStruct u8 wishPerishSongState; u8 wishPerishSongBattlerId; u8 field_182; - u8 field_183; - u8 field_184; - u8 field_185; - u8 field_186; - u8 field_187; - struct BattleEnigmaBerry battleEnigmaBerry; - u8 field_1A4[0x5C]; // currently unknown + // align 4 + union { + struct MultiPartnerEnigmaBerry multiPartnerEnigmaBerry; + struct UnknownPokemonStruct4 multiBattleMons[3]; + } multiBuffer; + u8 padding_1E4[0x1C]; }; // size == 0x200 bytes extern struct BattleStruct *gBattleStruct; -- cgit v1.2.3 From f7f7e9a70d135a13c7fac03716d3532ded89bb78 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 12 Mar 2021 16:56:09 -0500 Subject: More documentation in battle_main --- include/battle.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 3553c16c6..636889f46 100644 --- a/include/battle.h +++ b/include/battle.h @@ -359,8 +359,8 @@ extern struct BattleResults gBattleResults; struct MultiPartnerEnigmaBerry { - u8 field_0; - u8 field_1; + u8 versionSignatureLo; + u8 versionSignatureHi; u8 vsScreenHealthFlagsLo; u8 vsScreenHealthFlagsHi; struct BattleEnigmaBerry battleEnigmaBerry; -- cgit v1.2.3 From 31f4edbe503134eba4f7fee8ca9ecc85099c51bd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 14 Mar 2021 20:10:19 -0400 Subject: Document more symbols in battle --- include/battle.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 636889f46..d8d96c859 100644 --- a/include/battle.h +++ b/include/battle.h @@ -516,14 +516,12 @@ struct BattleScripting enum { - BACK_PIC_BRENDAN, - BACK_PIC_MAY, BACK_PIC_RED, BACK_PIC_LEAF, BACK_PIC_RS_BRENDAN, BACK_PIC_RS_MAY, - BACK_PIC_WALLY, - BACK_PIC_STEVEN + BACK_PIC_POKEDUDE, + BACK_PIC_OLDMAN }; struct BattleSpriteInfo @@ -719,7 +717,7 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gBattleTerrain; extern struct UnknownPokemonStruct4 gMultiPartnerParty[3]; -extern u16 *gUnknown_2022BC0; +extern u16 *sUnknownDebugSpriteDataBuffer; extern u16 gRandomTurnNumber; #endif // GUARD_BATTLE_H -- cgit v1.2.3 From 2f4f63afdb6a7b77a8161f0cd42ae64cc5f1515c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Mar 2021 14:27:50 -0400 Subject: Document old man batttle controller --- include/battle.h | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index d8d96c859..74a72b332 100644 --- a/include/battle.h +++ b/include/battle.h @@ -370,15 +370,15 @@ struct BattleStruct { u8 turnEffectsTracker; u8 turnEffectsBattlerId; - u8 filler2; + u8 filler2; // unused u8 turnCountersTracker; u8 wrappedMove[MAX_BATTLERS_COUNT * 2]; // Leftover from Ruby's ewram access. u8 moveTarget[MAX_BATTLERS_COUNT]; u8 expGetterMonId; - u8 field_11; + u8 field_11; // unuused u8 wildVictorySong; u8 dynamicMoveType; - u8 wrappedBy[4]; + u8 wrappedBy[MAX_BATTLERS_COUNT]; u16 assistPossibleMoves[PARTY_SIZE * MAX_MON_MOVES]; // 6 mons, each of them knowing 4 moves u8 focusPunchBattlerId; u8 battlerPreventingSwitchout; @@ -387,17 +387,17 @@ struct BattleStruct u8 switchInAbilitiesCounter; u8 faintedActionsState; u8 faintedActionsBattlerId; - u8 field_4F; + // balign 2 u16 expValue; - u8 field_52; + u8 scriptPartyIdx; // for printing the nickname u8 sentInPokes; bool8 selectionScriptFinished[MAX_BATTLERS_COUNT]; - u8 field_58[4]; + u8 battlerPartyIndexes[MAX_BATTLERS_COUNT]; u8 monToSwitchIntoId[MAX_BATTLERS_COUNT]; - u8 field_60[4][3]; + u8 battlerPartyOrders[MAX_BATTLERS_COUNT][3]; u8 runTries; - u8 caughtMonNick[11]; - u8 field_78; + u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; + u8 field_78; // unused u8 safariGoNearCounter; u8 safariPkblThrowCounter; u8 safariEscapeFactor; @@ -407,21 +407,18 @@ struct BattleStruct u8 formToChangeInto; u8 chosenMovePositions[MAX_BATTLERS_COUNT]; u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT]; - u8 field_88; - u8 field_89; - u8 field_8A; - u8 field_8B; - u8 field_8C; - u8 field_8D; + u8 field_88; // unused + u8 field_89; // unused + u8 field_8A; // unused + u8 playerPartyIdx; + u8 field_8C; // unused + u8 field_8D; // unused u8 stringMoveType; u8 expGetterBattlerId; - u8 field_90; - u8 field_91; + u8 field_90; // unused + u8 absentBattlerFlags; u8 AI_monToSwitchIntoId[2]; - u8 field_94; - u8 field_95; - u8 field_96; - u8 field_97; + u8 simulatedInputState[4]; // used by Oak/Old Man/Pokedude controllers u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // ask gamefreak why they declared it that way u16 hpOnSwitchout[2]; u8 abilityPreventingSwitchout; @@ -544,7 +541,7 @@ struct BattleAnimationInfo u8 field_6; u8 field_7; u8 ballThrowCaseId; - u8 field_9_x1 : 1; + u8 healthboxSlideInStarted : 1; u8 field_9_x2 : 1; u8 field_9_x1C : 3; u8 field_9_x20 : 1; @@ -566,7 +563,7 @@ struct BattleHealthboxInfo u8 statusAnimActive : 1; // x10 u8 animFromTableActive : 1; // x20 u8 specialAnimActive : 1; //x40 - u8 flag_x80 : 1; + u8 triedShinyMonAnim : 1; u8 field_1_x1 : 1; u8 field_1_x1E : 5; u8 field_1_x40 : 1; @@ -578,7 +575,7 @@ struct BattleHealthboxInfo u8 matrixNum; u8 shadowSpriteId; u8 field_8; - u8 field_9; + u8 introEndDelay; u8 field_A; u8 field_B; }; @@ -696,7 +693,7 @@ extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gCurrMovePos; extern u8 gChosenMovePos; -extern u8 gUnknown_3004FFC[MAX_BATTLERS_COUNT]; +extern u8 gBattleControllerData[MAX_BATTLERS_COUNT]; extern u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT]; extern u16 gDynamicBasePower; extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT]; -- cgit v1.2.3 From c6563b78c0b922aa9674d4e12fc528f0098ba904 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Mar 2021 16:19:15 -0400 Subject: Sync new field name in BattleStruct --- include/battle.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 74a72b332..54e33455d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -357,7 +357,7 @@ struct BattleResults extern struct BattleResults gBattleResults; -struct MultiPartnerEnigmaBerry +struct LinkPartnerHeader { u8 versionSignatureLo; u8 versionSignatureHi; @@ -375,7 +375,7 @@ struct BattleStruct u8 wrappedMove[MAX_BATTLERS_COUNT * 2]; // Leftover from Ruby's ewram access. u8 moveTarget[MAX_BATTLERS_COUNT]; u8 expGetterMonId; - u8 field_11; // unuused + u8 field_11; // unused u8 wildVictorySong; u8 dynamicMoveType; u8 wrappedBy[MAX_BATTLERS_COUNT]; @@ -448,8 +448,8 @@ struct BattleStruct u8 field_182; // align 4 union { - struct MultiPartnerEnigmaBerry multiPartnerEnigmaBerry; - struct UnknownPokemonStruct4 multiBattleMons[3]; + struct LinkPartnerHeader linkPartnerHeader; + struct MultiBattlePokemonTx multiBattleMons[3]; } multiBuffer; u8 padding_1E4[0x1C]; }; // size == 0x200 bytes @@ -713,7 +713,7 @@ extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT]; extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gBattleTerrain; -extern struct UnknownPokemonStruct4 gMultiPartnerParty[3]; +extern struct MultiBattlePokemonTx gMultiPartnerParty[3]; extern u16 *sUnknownDebugSpriteDataBuffer; extern u16 gRandomTurnNumber; -- cgit v1.2.3 From 14aa5bf52f5e6bfe93b41afcd0f9ccd6bb796d68 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Mar 2021 20:17:47 -0400 Subject: Remove unused, unneeded fields from BattleHealthboxInfo --- include/battle.h | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 54e33455d..0ae84b595 100644 --- a/include/battle.h +++ b/include/battle.h @@ -200,7 +200,7 @@ struct ProtectStruct u32 field3 : 8; /* field_4 */ u32 physicalDmg; - /* field_8 */ u32 specialDmg; + /* soundTimer */ u32 specialDmg; /* field_C */ u8 physicalBattlerId; /* field_D */ u8 specialBattlerId; /* field_E */ u16 fieldE; @@ -556,28 +556,24 @@ struct BattleAnimationInfo struct BattleHealthboxInfo { - u8 partyStatusSummaryShown : 1; - u8 healthboxIsBouncing : 1; - u8 battlerIsBouncing : 1; + u8 partyStatusSummaryShown : 1; // x1 + u8 healthboxIsBouncing : 1; // x2 + u8 battlerIsBouncing : 1; // x4 u8 ballAnimActive : 1; // 0x8 u8 statusAnimActive : 1; // x10 u8 animFromTableActive : 1; // x20 - u8 specialAnimActive : 1; //x40 - u8 triedShinyMonAnim : 1; - u8 field_1_x1 : 1; - u8 field_1_x1E : 5; - u8 field_1_x40 : 1; - u8 field_1_x80 : 1; + u8 specialAnimActive : 1; // x40 + u8 triedShinyMonAnim : 1; // x80 + u8 finishedShinyMonAnim : 1; // x1 + u8 opponentDrawPartyStatusSummaryDelay : 5; // x2 u8 healthboxBounceSpriteId; u8 battlerBounceSpriteId; u8 animationState; - u8 field_5; + u8 partyStatusDelayTimer; u8 matrixNum; u8 shadowSpriteId; - u8 field_8; + u8 soundTimer; u8 introEndDelay; - u8 field_A; - u8 field_B; }; struct BattleBarInfo -- cgit v1.2.3 From 10f0222d280c2b30c34bd326428f1a0e50c6c570 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 08:24:53 -0400 Subject: Battle controller opponent sync labels from emerald --- include/battle.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 0ae84b595..0d2601c49 100644 --- a/include/battle.h +++ b/include/battle.h @@ -607,13 +607,13 @@ extern u8 *gLinkBattleRecvBuffer; struct MonSpritesGfx { void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon - void* sprites[4]; - struct SpriteTemplate templates[4]; - struct SpriteFrameImage field_74[4][4]; - u8 field_F4[0x80]; + void* sprites[MAX_BATTLERS_COUNT]; + struct SpriteTemplate templates[MAX_BATTLERS_COUNT]; + struct SpriteFrameImage images[MAX_BATTLERS_COUNT][4]; + u8 field_F4[0x80]; // unused u8 *barFontGfx; - void *field_178; - u16 *field_17C; + void *field_178; // freed but never allocated + u16 *multiUseBuffer; }; extern u16 gBattle_BG0_X; -- cgit v1.2.3 From 7794570c71a82fca440bc13e18da45f49642eb6c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 13:51:03 -0400 Subject: Document pokedude battle controller, 1 --- include/battle.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 0d2601c49..0d0f1635b 100644 --- a/include/battle.h +++ b/include/battle.h @@ -616,6 +616,15 @@ struct MonSpritesGfx u16 *multiUseBuffer; }; +struct PokedudeBattlerState +{ + u8 action_idx; + u8 move_idx; + u8 timer; + u8 msg_idx; + u8 saved_bg0y; +}; + extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gBattle_BG1_X; @@ -661,7 +670,7 @@ extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern void (*gPreBattleCallback1)(void); extern bool8 gDoingBattleAnim; -extern u8 *gUnknown_3005EE0[MAX_BATTLERS_COUNT]; +extern struct PokedudeBattlerState *gPokedudeBattlerStates[MAX_BATTLERS_COUNT]; extern u8 *gUnknown_2022BB8; extern u8 *gUnknown_2022BBC; extern void (*gBattleMainFunc)(void); -- cgit v1.2.3 From d86c9b097628577e91a6ab5b0609fa61790945a2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Mar 2021 08:49:31 -0400 Subject: Document battle_anim_mons, 1 --- include/battle.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 0d0f1635b..424cade00 100644 --- a/include/battle.h +++ b/include/battle.h @@ -671,8 +671,8 @@ extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern void (*gPreBattleCallback1)(void); extern bool8 gDoingBattleAnim; extern struct PokedudeBattlerState *gPokedudeBattlerStates[MAX_BATTLERS_COUNT]; -extern u8 *gUnknown_2022BB8; -extern u8 *gUnknown_2022BBC; +extern u8 *gBattleAnimMons_BgTilesBuffer; +extern u8 *gBattleAnimMons_BgTilemapBuffer; extern void (*gBattleMainFunc)(void); extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u32 gUnknown_2022B54; -- cgit v1.2.3 From c5aa5d37229e5692355e4b3979b6cafbcad7caee Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Mar 2021 15:00:06 -0400 Subject: Fix faulty search&replace --- include/battle.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'include/battle.h') diff --git a/include/battle.h b/include/battle.h index 424cade00..1a10b7c1c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -196,14 +196,13 @@ struct ProtectStruct u32 flag_x20 : 1; // 0x20 u32 flag_x40 : 1; // 0x40 u32 flag_x80 : 1; // 0x80 - /* field_3 */ u32 field3 : 8; - /* field_4 */ u32 physicalDmg; - /* soundTimer */ u32 specialDmg; - /* field_C */ u8 physicalBattlerId; - /* field_D */ u8 specialBattlerId; - /* field_E */ u16 fieldE; + u32 physicalDmg; + u32 specialDmg; + u8 physicalBattlerId; + u8 specialBattlerId; + u16 fieldE; }; extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; @@ -719,7 +718,6 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gBattleTerrain; extern struct MultiBattlePokemonTx gMultiPartnerParty[3]; -extern u16 *sUnknownDebugSpriteDataBuffer; extern u16 gRandomTurnNumber; #endif // GUARD_BATTLE_H -- cgit v1.2.3