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') 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') 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 75b9fbc92fbe5edbf8dbdd647585d3d94adb33d1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 13 Mar 2021 17:51:27 -0500 Subject: check __CLION_IDE__ predefine in global.h --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index dbe913595..fba89427c 100644 --- a/include/global.h +++ b/include/global.h @@ -16,7 +16,7 @@ #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") -#if defined (__APPLE__) || defined (__CYGWIN__) +#if defined (__APPLE__) || defined (__CYGWIN__) || defined(__CLION_IDE__) // Get the IDE to stfu // We define it this way to fool preproc. -- cgit v1.2.3 From 99ec579debc63991f16e08ef906111ad556edad5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 14 Mar 2021 16:29:33 -0400 Subject: Name symbols in battle_anim_special.c --- include/battle_anim.h | 23 ++++++++++++++++------- include/battle_main.h | 4 ++-- include/gba/defines.h | 10 ++++++++++ include/global.h | 8 +++----- include/load_save.h | 1 + 5 files changed, 32 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/battle_anim.h b/include/battle_anim.h index 866ca663e..05cba4e34 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -36,6 +36,15 @@ struct BattleAnimBackground #define ANIM_ARGS_COUNT 8 +// Linear Translation +#define sTransl_Speed data[0] +#define sTransl_Duration data[0] // for Fast +#define sTransl_InitX data[1] +#define sTransl_DestX data[2] +#define sTransl_InitY data[3] +#define sTransl_DestY data[4] +#define sTransl_ArcAmpl data[5] + extern void (*gAnimScriptCallback)(void); extern bool8 gAnimScriptActive; extern u8 gAnimVisualTaskCount; @@ -129,7 +138,7 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; void MoveBattlerSpriteToBG(u8 battlerId, u8); -void sub_8073128(u8); +void ResetBattleAnimBg(u8); void ClearBattleAnimationVars(void); void DoMoveAnim(u16 move); void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim); @@ -306,12 +315,12 @@ void AnimKnockOffStrike(struct Sprite *); void AnimRecycle(struct Sprite *); // battle_anim_special.c -void sub_80F1720(u8 battler, struct Pokemon *mon); +void TryShinyAnimation(u8 battler, struct Pokemon *mon); u8 ItemIdToBallId(u16 itemId); -u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); +u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); -void sub_80EEFC8(u8 *, u8 *, u8 battlerId); -void sub_80EF0E0(u8 batterId); +void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId); +void DoFreeHealthboxPalsForLevelUp(u8 batterId); enum { @@ -382,7 +391,7 @@ u8 GetBattlerPosition(u8 battlerId); u8 GetBattlerAtPosition(u8 position); bool8 IsBattlerSpritePresent(u8 battlerId); bool8 IsDoubleBattle(void); -void sub_80752A0(struct BattleAnimBgData *animBgData); +void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData); void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1); void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused); void sub_8075358(u32 bgId); @@ -397,7 +406,7 @@ void InitAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite); void sub_80755B8(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); -void sub_807563C(struct Sprite *sprite); +void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); void sub_8075678(struct Sprite *sprite); void sub_80756A4(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); diff --git a/include/battle_main.h b/include/battle_main.h index fe585f0e6..424fb25b1 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -80,8 +80,8 @@ void sub_8012100(struct Sprite *sprite); void sub_8012110(struct Sprite *sprite); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); -void sub_8012354(struct Sprite *sprite); -void sub_801236C(struct Sprite *sprite); +void SpriteCB_PlayerThrowInit(struct Sprite *sprite); +void UpdatePlayerPosInThrowAnim(struct Sprite *sprite); void nullsub_12(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); diff --git a/include/gba/defines.h b/include/gba/defines.h index 28f804dff..ce276862c 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -16,8 +16,10 @@ #if MODERN #define NOINLINE __attribute__((noinline)) +#define HERE __attribute__((no_reorder)) #else #define NOINLINE +#define HERE #endif #define ALIGNED(n) __attribute__((aligned(n))) @@ -92,7 +94,15 @@ #define RGB_CYAN RGB(0, 31, 31) #define RGB_WHITEALPHA (RGB_WHITE | 0x8000) +// Some functions are strictly inline asm #define NAKED __attribute__((naked)) + +// Silence IDE warnings +#if __GNUC__ >= 4 +#define USED __attribute__((used)) +#else +#define USED +#endif #define UNUSED __attribute__((unused)) #endif // GUARD_GBA_DEFINES diff --git a/include/global.h b/include/global.h index fba89427c..04adc82cb 100644 --- a/include/global.h +++ b/include/global.h @@ -31,9 +31,7 @@ #define __(x) (x) #endif // __APPLE__ -#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) -// GF's lingo -#define NELEMS ARRAY_COUNT +#define NELEMS(array) (sizeof(array) / sizeof((array)[0])) #define SWAP(a, b, temp) \ { \ @@ -293,7 +291,7 @@ struct SaveBlock2 /*0xB10*/ struct BerryPickingResults berryPick; /*0xB20*/ u8 filler_B20[0x400]; /*0xF20*/ u32 encryptionKey; -}; +}; // size: 0xF24 extern struct SaveBlock2 *gSaveBlock2Ptr; @@ -826,7 +824,7 @@ struct SaveBlock1 /*0x3D24*/ u8 filler3D24[0x10]; /*0x3D34*/ u32 towerChallengeId; /*0x3D38*/ struct TrainerTower trainerTower[NUM_TOWER_CHALLENGE_TYPES]; -}; +}; // size: 0x3D68 struct MapPosition { diff --git a/include/load_save.h b/include/load_save.h index 23c1429ed..95de991a8 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -6,6 +6,7 @@ extern bool32 gFlashMemoryPresent; extern struct SaveBlock1 gSaveBlock1; extern struct SaveBlock2 gSaveBlock2; +extern struct PokemonStorage gPokemonStorage; void ClearSav2(void); void ClearSav1(void); -- 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 +++----- include/battle_controllers.h | 2 +- include/battle_gfx_sfx_util.h | 2 +- include/battle_main.h | 22 +++++++++++----------- include/data.h | 12 ++++++------ include/pokeball.h | 2 +- include/pokemon.h | 2 +- 7 files changed, 24 insertions(+), 26 deletions(-) (limited to 'include') 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 diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 412856353..89164b009 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -184,7 +184,7 @@ extern struct UnusedControllerStruct gUnknown_2022870; // general functions void HandleLinkBattleSetup(void); void SetUpBattleVars(void); -void sub_800D30C(void); +void InitBtlControllers(void); void sub_800DD28(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 667686af8..6c2ffa11b 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -36,7 +36,7 @@ void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); void HideBattlerShadowSprite(u8 battlerId); -void sub_80357C8(void); +void BattleInterfaceSetWindowPals(void); void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute); void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); diff --git a/include/battle_main.h b/include/battle_main.h index 424fb25b1..201000a69 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -45,9 +45,9 @@ struct UnknownPokemonStruct4 #define BOUNCE_MON 0x0 #define BOUNCE_HEALTHBOX 0x1 -extern const struct SpriteTemplate gUnknown_824EFF0; -extern const struct OamData gOamData_824F010; -extern const struct OamData gOamData_824F018; +extern const struct SpriteTemplate gUnknownDebugSprite; +extern const struct OamData gOamData_BattlerOpponent; +extern const struct OamData gOamData_BattlerPlayer; extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1]; extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; @@ -66,16 +66,16 @@ void CB2_InitBattle(void); void BattleMainCB2(void); void FreeRestoreBattleData(void); void VBlankCB_Battle(void); -void nullsub_9(struct Sprite *sprite); -void sub_801182C(struct Sprite *sprite); -void sub_8011A1C(void); +void SpriteCB_VsLetterDummy(struct Sprite *sprite); +void SpriteCB_VsLetterInit(struct Sprite *sprite); +void CB2_InitEndLinkBattle(void); u32 GetBattleBgAttribute(u8 arrayId, u8 caseId); -void SpriteCB_WildMon(struct Sprite *sprite); +void SpriteCB_EnemyMon(struct Sprite *sprite); void SpriteCallbackDummy2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); -void sub_8012044(struct Sprite *sprite); -void sub_8012098(struct Sprite *sprite); -void sub_80120C4(struct Sprite *sprite); +void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); +void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); +void SpriteCB_AllyMon(struct Sprite *sprite); void sub_8012100(struct Sprite *sprite); void sub_8012110(struct Sprite *sprite); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); @@ -88,7 +88,7 @@ void SwitchInClearSetData(void); void FaintClearSetData(void); void BattleTurnPassed(void); u8 IsRunningFromBattleImpossible(void); -void sub_8013F6C(u8 battler); +void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler); void SwapTurnOrder(u8 id1, u8 id2); u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); diff --git a/include/data.h b/include/data.h index 19da0034f..55eda56a4 100644 --- a/include/data.h +++ b/include/data.h @@ -48,12 +48,12 @@ extern const u8 *const gBattleAnims_Special[]; extern const struct OamData gUnknown_824F010; extern const struct OamData gUnknown_824F018; extern const union AnimCmd *const gSpriteAnimTable_82349BC[]; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[]; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[]; -extern const struct SpriteFrameImage gUnknown_8234698[]; -extern const struct SpriteFrameImage gUnknown_82346B8[]; -extern const struct SpriteFrameImage gUnknown_82346D8[]; -extern const struct SpriteFrameImage gUnknown_82346F8[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[]; +extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[]; +extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[]; +extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[]; +extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[]; diff --git a/include/pokeball.h b/include/pokeball.h index 1c2241246..9ba5656af 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -33,7 +33,7 @@ void sub_8076918(u8 bank); void DoHitAnimHealthboxEffect(u8 bank); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); -void sub_804BD94(u8 battler); +void StartHealthboxSlideIn(u8 battler); void DestroySpriteAndFreeResources2(struct Sprite *sprite); #endif // GUARD_POKEBALL_H diff --git a/include/pokemon.h b/include/pokemon.h index 6a9b657ea..2f9bdb5af 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -327,7 +327,7 @@ extern const u32 gExperienceTables[][MAX_LEVEL + 1]; extern const u16 *const gLevelUpLearnsets[]; extern const u8 gFacilityClassToPicIndex[]; extern const u8 gFacilityClassToTrainerClass[]; -extern const struct SpriteTemplate gUnknown_825DEF0[]; +extern const struct SpriteTemplate gSpriteTemplates_Battlers[]; extern const u8 gPPUpGetMask[]; void ZeroBoxMonData(struct BoxPokemon *boxMon); -- cgit v1.2.3 From df9bed0548bd6b9468894ab3e3711b423a1afaf1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Mar 2021 08:33:37 -0400 Subject: Revert HERE and USED macros --- include/gba/defines.h | 9 --------- 1 file changed, 9 deletions(-) (limited to 'include') diff --git a/include/gba/defines.h b/include/gba/defines.h index ce276862c..02d687ade 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -16,10 +16,8 @@ #if MODERN #define NOINLINE __attribute__((noinline)) -#define HERE __attribute__((no_reorder)) #else #define NOINLINE -#define HERE #endif #define ALIGNED(n) __attribute__((aligned(n))) @@ -96,13 +94,6 @@ // Some functions are strictly inline asm #define NAKED __attribute__((naked)) - -// Silence IDE warnings -#if __GNUC__ >= 4 -#define USED __attribute__((used)) -#else -#define USED -#endif #define UNUSED __attribute__((unused)) #endif // GUARD_GBA_DEFINES -- 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 ++++++++++++++++++++---------------------- include/battle_anim.h | 3 +++ include/battle_controllers.h | 35 +++++++++++++++++++++---------- include/battle_gfx_sfx_util.h | 6 +++--- include/battle_main.h | 2 +- include/battle_message.h | 6 +++--- include/link.h | 4 ++-- include/party_menu.h | 6 +++--- include/reshow_battle_screen.h | 2 +- include/strings.h | 4 ++-- 10 files changed, 64 insertions(+), 51 deletions(-) (limited to 'include') 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]; diff --git a/include/battle_anim.h b/include/battle_anim.h index 05cba4e34..ddfeb9bcd 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -445,6 +445,9 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId); void sub_80767F0(void); u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId); + +// Returns 2 if player left or opp right +// Returns 1 if player right or opp left u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10); void DestroySpriteAndFreeResources_(struct Sprite *sprite); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 89164b009..89e8b64da 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -235,14 +235,14 @@ void BtlController_EmitCmd55(u8 bufferId, u8 arg1); void nullsub_13(void); void SetControllerToPlayer(void); void PlayerHandleGetRawMonData(void); -void sub_80335F8(struct Sprite *sprite); +void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite); void SetCB2ToReshowScreenAfterMenu(void); void SetCB2ToReshowScreenAfterMenu2(void); -void c3_0802FDF4(u8 taskId); +void Task_PlayerController_RestoreBgmAfterCry(u8 taskId); void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused); void ActionSelectionDestroyCursorAt(u8 cursorPos); void InitMoveSelectionsVarsAndStrings(void); -void sub_802F6A8(void); +void SetBattleEndCallbacks(void); void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1); void MoveSelectionDestroyCursorAt(u8 cursorPos); void HandleInputChooseMove(void); @@ -260,14 +260,27 @@ void InitPokedudePartyAndOpponent(void); // oak and old man controller void SetControllerToOakOrOldMan(void); -bool8 sub_80EB2E0(u8); -void sub_80EB2F4(u8); -void sub_80E8570(void); -void sub_80E85C0(void); -void sub_80E8598(void); -void sub_80E7988(void); -void sub_80EB30C(void); -void sub_80EB524(void); + +// These flags are set to signal that the indicated message +// was already emitted + +// Inflicting damage is key +#define FIRST_BATTLE_MSG_FLAG_INFLICT_DMG 0x1 +// Lowering stats is advantageous +#define FIRST_BATTLE_MSG_FLAG_STAT_CHG 0x2 +// Keep an eye on your HP +#define FIRST_BATTLE_MSG_FLAG_HP_RESTORE 0x4 +// +#define FIRST_BATTLE_MSG_FLAG_PARTY_MENU 0x8 + +bool8 BtlCtrl_OakOldMan_TestState2Flag(u8 mask); +void BtlCtrl_OakOldMan_SetState2Flag(u8 mask); +void PrintOakText_InflictingDamageIsKey(void); +void PrintOakText_HowDisappointing(void); +void PrintOakText_OakNoRunningFromATrainer(void); +void OakOldManHandleInputChooseMove(void); +void BtlCtrl_DrawVoiceoverMessageFrame(void); +void BtlCtrl_RemoveVoiceoverMessageFrame(void); // link opponent controller void SetControllerToLinkOpponent(void); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 6c2ffa11b..d22a47164 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -3,8 +3,8 @@ void AllocateBattleSpritesData(void); void FreeBattleSpritesData(void); -void sub_8033E3C(struct Sprite *sprite); -void sub_8033EEC(struct Sprite *sprite); +void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite); +void SpriteCB_TrainerSlideIn(struct Sprite *sprite); void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status); bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId, u16 argument); void InitAndLaunchSpecialAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId); @@ -31,7 +31,7 @@ void ClearBehindSubstituteBit(u8 battlerId); void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId); void BattleStopLowHpSound(void); void HandleBattleLowHpMusicChange(void); -void sub_8035450(u8 affineMode); +void SetBattlerSpriteAffineMode(u8 affineMode); void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); diff --git a/include/battle_main.h b/include/battle_main.h index 201000a69..e980bde70 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -77,7 +77,7 @@ void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); void SpriteCB_AllyMon(struct Sprite *sprite); void sub_8012100(struct Sprite *sprite); -void sub_8012110(struct Sprite *sprite); +void SpriteCB_FaintSlideAnim(struct Sprite *sprite); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); void SpriteCB_PlayerThrowInit(struct Sprite *sprite); diff --git a/include/battle_message.h b/include/battle_message.h index 5a16a4250..04c5b1839 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -199,7 +199,7 @@ struct BattleMsgData u16 lastItem; u8 lastAbility; u8 scrActive; - u8 unk1605E; + u8 bakScriptPartyIdx; u8 hpScale; u8 itemEffectBattler; u8 moveType; @@ -213,8 +213,8 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); void BattleHandleAddTextPrinter(const u8* text, u8 arg1); void SetPpNumbersPaletteInMoveSelection(void); u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); -void BattlePutTextOnWindow(const u8* text, u8 arg1); -bool8 sub_80D89B0(u16); +void BattlePutTextOnWindow(const u8* text, u8 windowId_flags); +bool8 BattleStringShouldBeColored(u16); extern struct BattleMsgData *gBattleMsgDataPtr; diff --git a/include/link.h b/include/link.h index 6329c197b..b4749164b 100644 --- a/include/link.h +++ b/include/link.h @@ -251,14 +251,14 @@ void sub_800E0E8(void); bool8 sub_800A520(void); bool8 sub_8010500(void); void sub_800DFB4(u8, u8); -void PrepareSendLinkCmd2FFE_or_RfuCmd6600(void); +void SetLinkStandbyCallback(void); void SetWirelessCommType1(void); void sub_8009734(void); void sub_800A620(void); void LinkRfu_DestroyIdleTask(void); u8 sub_800ABAC(void); u8 sub_800ABBC(void); -void Link_TryStartSend5FFF(void); +void SetCloseLinkCallback(void); void OpenLink(void); bool8 IsLinkMaster(void); void CheckShouldAdvanceLinkState(void); diff --git a/include/party_menu.h b/include/party_menu.h index a1b85e059..69f25e319 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -72,9 +72,9 @@ void ChooseMonForTradingBoard(u8 menuType, MainCallback callback); void ChooseMonForMoveTutor(void); void ChooseMonForWirelessMinigame(void); void OpenPartyMenuInTutorialBattle(u8 partyAction); -void OpenPartyMenuInBattle(void); -void ChooseMonForInBattleItem(void); -void sub_81279E0(void); +void Pokedude_OpenPartyMenuInBattle(void); +void Pokedude_ChooseMonForInBattleItem(void); +void EnterPartyFromItemMenuInBattle(void); void BufferBattlePartyCurrentOrder(void); void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId); void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2); diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h index cc20eed96..5587d50e5 100644 --- a/include/reshow_battle_screen.h +++ b/include/reshow_battle_screen.h @@ -3,7 +3,7 @@ #include "global.h" -void nullsub_44(void); +void ReshowBattleScreenDummy(void); void ReshowBattleScreenAfterMenu(void); #endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/strings.h b/include/strings.h index 28dcec66b..b4783c3c4 100644 --- a/include/strings.h +++ b/include/strings.h @@ -338,12 +338,12 @@ extern const u8 gText_SwitchedPkmnItem[]; extern const u8 gText_BagFullCouldNotRemoveItem[]; extern const u8 gText_PkmnCantParticipate[]; extern const u8 gText_CancelParticipation[]; -extern const u8 gUnknown_8417494[]; +extern const u8 gText_OakThisIsListOfPokemon[]; extern const u8 gMenuText_Confirm[]; extern const u8 gText_MaleSymbol[]; extern const u8 gText_FemaleSymbol[]; extern const u8 gText_Slash[]; -extern const u8 gUnknown_8417457[]; +extern const u8 gText_OakImportantToGetToKnowPokemonThroughly[]; extern const u8 gText_PkmnNotHolding[]; extern const u8 gText_PCMailboxFull[]; extern const u8 gText_MailSentToPC[]; -- 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 +++++----- include/battle_main.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'include') 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; diff --git a/include/battle_main.h b/include/battle_main.h index e980bde70..bc46be6b4 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -9,7 +9,7 @@ struct TrainerMoney u8 value; }; -struct UnknownPokemonStruct4 +struct MultiBattlePokemonTx { /*0x00*/ u16 species; /*0x02*/ u16 heldItem; -- cgit v1.2.3 From 81da6acff56cadc5e2b7b5572aba944bf0f1c8ad Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 15 Mar 2021 19:32:49 -0400 Subject: battle_gfx_sfx_util sync emerald names to unnamed syms --- include/battle_gfx_sfx_util.h | 2 +- include/battle_main.h | 2 +- include/pokemon.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index d22a47164..1356df1aa 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -9,7 +9,7 @@ void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status); bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId, u16 argument); void InitAndLaunchSpecialAnimation(u8 activeBattler, u8 atkBattler, u8 defBattler, u8 tableId); bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn); -bool8 mplay_80342A4(u8 battlerId); +bool8 IsBattleSEPlaying(u8 battlerId); void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId); diff --git a/include/battle_main.h b/include/battle_main.h index bc46be6b4..22984101c 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -76,7 +76,7 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); void SpriteCB_AllyMon(struct Sprite *sprite); -void sub_8012100(struct Sprite *sprite); +void SpriteCB_SetToDummy3(struct Sprite *sprite); void SpriteCB_FaintSlideAnim(struct Sprite *sprite); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); diff --git a/include/pokemon.h b/include/pokemon.h index 2f9bdb5af..4fcc473ad 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -446,7 +446,7 @@ bool8 IsMonShiny(struct Pokemon *mon); u8 *GetTrainerPartnerName(void); u8 GetPlayerPartyHighestLevel(void); u16 FacilityClassToPicIndex(u16 facilityClass); -bool8 sub_804455C(u8 caseId, u8 battlerId); +bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); void SetDeoxysStats(void); u16 sub_80447AC(void); u16 sub_80447F0(void); -- 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') 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') 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 6fc2bdf84011a7d68ed76762b50cc84fbf9ff5a7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 09:46:17 -0400 Subject: battle_controller_link_partner sync labels from emerald --- include/battle_anim.h | 2 +- include/battle_controllers.h | 2 +- include/battle_gfx_sfx_util.h | 2 +- include/battle_interface.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/battle_anim.h b/include/battle_anim.h index ddfeb9bcd..456f6db78 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -404,7 +404,7 @@ void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite); -void sub_80755B8(struct Sprite *sprite); +void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); void sub_8075678(struct Sprite *sprite); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 89e8b64da..184356249 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -222,7 +222,7 @@ 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_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus *hpAndStatus, u8 param); void BtlController_EmitHidePartyStatusSummary(u8 bufferId); void BtlController_EmitEndBounceEffect(u8 bufferId); void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 1356df1aa..4c5f230d7 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -15,7 +15,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId); void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); void DecompressTrainerBackPalette(u16 a1, u8 a2); -void nullsub_16(u8 a1); +void BattleGfxSfxDummy3(u8 a1); void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId); bool8 BattleLoadAllHealthBoxesGfx(u8 state); void LoadBattleBarGfx(u8 arg0); diff --git a/include/battle_interface.h b/include/battle_interface.h index 8878b9fb9..3415836a8 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -73,7 +73,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority); void InitBattlerHealthboxCoords(u8 battlerId); void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); void SwapHpBarsWithHpText(void); -u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); +u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 isSwitchingMons, bool8 isBattleStart); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); u8 GetHPBarLevel(s16 hp, s16 maxhp); -- 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') 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 783488aae5a4421bdca249a18458831704afbab0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 16:41:28 -0400 Subject: Name nullsubs in battle ctlrs --- include/battle_controllers.h | 2 +- include/pokemon.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 184356249..0cbda02c0 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -232,7 +232,7 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void BtlController_EmitCmd55(u8 bufferId, u8 arg1); // player controller -void nullsub_13(void); +void PlayerDummy(void); void SetControllerToPlayer(void); void PlayerHandleGetRawMonData(void); void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite); diff --git a/include/pokemon.h b/include/pokemon.h index 4fcc473ad..6ffd286b7 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -448,7 +448,7 @@ u8 GetPlayerPartyHighestLevel(void); u16 FacilityClassToPicIndex(u16 facilityClass); bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); void SetDeoxysStats(void); -u16 sub_80447AC(void); +u16 GetUnionRoomTrainerPic(void); u16 sub_80447F0(void); void CreateEventLegalEnemyMon(void); void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); -- cgit v1.2.3 From c4b61cc0ed966a194942256ce6c2936f8183d414 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 16:57:52 -0400 Subject: Document FRLG-unique vars in main.c --- include/battle_controllers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 0cbda02c0..7dacb1343 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -185,7 +185,7 @@ extern struct UnusedControllerStruct gUnknown_2022870; void HandleLinkBattleSetup(void); void SetUpBattleVars(void); void InitBtlControllers(void); -void sub_800DD28(void); +void TryReceiveLinkBattleData(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); // emitters -- cgit v1.2.3 From 4d86834d12f788d78ec0ae9fc4ba999f7a0e1fc7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 16 Mar 2021 21:16:31 -0400 Subject: Document item use functions in pokemon.c --- include/battle_util.h | 2 +- include/constants/pokemon.h | 5 +++++ include/pokemon.h | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle_util.h b/include/battle_util.h index 797f0ef52..d3bd76a01 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -64,7 +64,7 @@ bool8 WasUnableToUseMove(u8 battler); void PrepareStringBattle(u16 stringId, u8 battler); void ResetSentPokesToOpponentValue(void); void sub_8017434(u8 battler); -void sub_80174B8(u8 battler); +void UpdateSentPokesToOpponentValue(u8 battler); void BattleScriptPush(const u8 *bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 0371f874f..d2d4c9d86 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -213,4 +213,9 @@ #define UNOWN_FORM_COUNT 28 #define BOX_NAME_LENGTH 8 +#define EVOTRIGGER_LEVEL_UP 0 +#define EVOTRIGGER_TRADE 1 +#define EVOTRIGGER_STONE 2 +#define EVOTRIGGER_STONE_2 3 + #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/pokemon.h b/include/pokemon.h index 6ffd286b7..c4e5f409c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -342,7 +342,7 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level); void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality); void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread); void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src); -void sub_803E23C(struct Pokemon *mon, struct BattleTowerPokemon *dest); +void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerPokemon *dest); void CalculateMonStats(struct Pokemon *mon); void BoxMonToMon(struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); -- cgit v1.2.3 From a172f0064c1936fbac56a02ccb386ce16a4edfb2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 17 Mar 2021 08:34:03 -0400 Subject: Fix accidental ++ deletion --- include/battle_main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle_main.h b/include/battle_main.h index 22984101c..0410e62c2 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -82,7 +82,7 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); void SpriteCB_PlayerThrowInit(struct Sprite *sprite); void UpdatePlayerPosInThrowAnim(struct Sprite *sprite); -void nullsub_12(void); +void BattleDummy(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); -- cgit v1.2.3 From 5add6bc54f0a69cb30a9be4e3785323857cb655b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 17 Mar 2021 12:50:25 -0400 Subject: Name undocced syms in battle_transition --- include/field_camera.h | 2 +- include/quest_log.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/field_camera.h b/include/field_camera.h index a3275eb9d..025b85132 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -26,7 +26,7 @@ extern bool8 gBikeCameraAheadPanback; void DrawWholeMapView(void); void CurrentMapDrawMetatileAt(int x, int y); -void sub_805A658(s16 *x, s16 *y); +void FieldCameraGetPixelOffsetAtGround(s16 *x, s16 *y); void SetCameraPanningCallback(void (*cb)(void)); void SetCameraPanning(s16 x, s16 y); void UpdateCameraPanning(void); diff --git a/include/quest_log.h b/include/quest_log.h index 9c50f5f6e..ffe5c2cea 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -49,7 +49,7 @@ void QuestLog_CutRecording(void); u8 sub_8112CAC(void); void ResetDeferredLinkEvent(void); void FinishRecordingQuestLogScene(void); -void sub_81139BC(void); +void QuestLogEvents_HandleEndTrainerBattle(void); void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx); void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value); void SetQuestLogRecordAndPlaybackPointers(void *oldSave); -- 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 ++-- include/battle_anim.h | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'include') 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; diff --git a/include/battle_anim.h b/include/battle_anim.h index 456f6db78..cf5f07af1 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -158,7 +158,7 @@ void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); s32 GetAnimBgAttribute(u8 bgId, u8 attributeId); void HandleIntroSlide(u8 terrain); void sub_80BC41C(u8 taskId); -void sub_80BCEF4(s32 bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset); +void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset); // battle_anim_effects_1.c extern const union AnimCmd *const gMusicNotesAnimTable[]; @@ -392,14 +392,14 @@ u8 GetBattlerAtPosition(u8 position); bool8 IsBattlerSpritePresent(u8 battlerId); bool8 IsDoubleBattle(void); void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData); -void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1); -void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused); -void sub_8075358(u32 bgId); +void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId); +void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 unused); +void InitBattleAnimBg(u32 bgId); void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset); void InitAnimBgTilemapBuffer(u32 bgId, const void *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); u8 GetBattleBgPaletteNum(void); -void sub_8075458(bool8 arg0); +void ToggleBg3Mode(bool8 arg0); void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); @@ -407,8 +407,8 @@ void StartAnimLinearTranslation(struct Sprite *sprite); void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); -void sub_8075678(struct Sprite *sprite); -void sub_80756A4(struct Sprite *sprite); +void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite); +void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); -- cgit v1.2.3 From c779411957262dc5971813a3f75d157190d9db51 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Mar 2021 13:14:08 -0400 Subject: Sync EVO_MODE consts from emerald --- include/constants/pokemon.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index d2d4c9d86..8a32ef7d1 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -213,9 +213,9 @@ #define UNOWN_FORM_COUNT 28 #define BOX_NAME_LENGTH 8 -#define EVOTRIGGER_LEVEL_UP 0 -#define EVOTRIGGER_TRADE 1 -#define EVOTRIGGER_STONE 2 -#define EVOTRIGGER_STONE_2 3 +#define EVO_MODE_NORMAL 0 +#define EVO_MODE_TRADE 1 +#define EVO_MODE_ITEM_USE 2 +#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve #endif // GUARD_CONSTANTS_POKEMON_H -- cgit v1.2.3 From d864eb510e1a78b22478b041a673b6aa97019c18 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Mar 2021 13:23:05 -0400 Subject: Sync DRAW_SPINDA_SPOTS from pokeemerald --- include/pokemon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index c4e5f409c..2707304d9 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -407,7 +407,7 @@ u16 NationalPokedexNumToSpecies(u16 nationalNum); u16 SpeciesToNationalPokedexNum(u16 species); u16 HoennToNationalOrder(u16 hoennNum); u16 SpeciesToCryId(u16 species); -void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4); +void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, bool8 isFrontPic); void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); bool8 GetPlayerFlankId(void); bool16 GetLinkTrainerFlankId(u8 linkPlayerId); -- cgit v1.2.3 From 18f108088229e520660ee55fe74a323b3156b036 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Mar 2021 14:33:43 -0400 Subject: Finish syncing pokemon.c with emerald --- include/pokemon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index 2707304d9..6027b9b5a 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -449,7 +449,7 @@ u16 FacilityClassToPicIndex(u16 facilityClass); bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); void SetDeoxysStats(void); u16 GetUnionRoomTrainerPic(void); -u16 sub_80447F0(void); +u16 GetUnionRoomTrainerClass(void); void CreateEventLegalEnemyMon(void); void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); bool8 CheckBattleTypeGhost(struct Pokemon *mon, u8 bank); -- 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') 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