summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-03-15 14:27:50 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-03-15 14:27:50 -0400
commit2f4f63afdb6a7b77a8161f0cd42ae64cc5f1515c (patch)
treec1e9b848a7f6832a4f206075c33a2d66376208af /include
parent67cdab24f8539aaacc1919b67764aae26ef7922f (diff)
Document old man batttle controller
Diffstat (limited to 'include')
-rw-r--r--include/battle.h47
-rw-r--r--include/battle_anim.h3
-rw-r--r--include/battle_controllers.h35
-rw-r--r--include/battle_gfx_sfx_util.h6
-rw-r--r--include/battle_main.h2
-rw-r--r--include/battle_message.h6
-rw-r--r--include/link.h4
-rw-r--r--include/party_menu.h6
-rw-r--r--include/reshow_battle_screen.h2
-rw-r--r--include/strings.h4
10 files changed, 64 insertions, 51 deletions
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[];