summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h43
-rw-r--r--include/battle_2.h2
-rw-r--r--include/battle_ai_script_commands.h8
-rw-r--r--include/battle_anim.h6
-rw-r--r--include/battle_controllers.h7
-rw-r--r--include/battle_interface.h2
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/pokemon.h10
-rw-r--r--include/trainer_tower.h1
9 files changed, 48 insertions, 33 deletions
diff --git a/include/battle.h b/include/battle.h
index 1e50a5dc1..445902b39 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -2,8 +2,6 @@
#define GUARD_BATTLE_H
#include "global.h"
-
-// should they be included here or included individually by every file?
#include "constants/battle.h"
#include "battle_util.h"
#include "battle_script_commands.h"
@@ -19,8 +17,6 @@
0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
*/
-#define BATTLE_BANKS_COUNT 4
-
#define IDENTITY_PLAYER_MON1 0
#define IDENTITY_OPPONENT_MON1 1
#define IDENTITY_PLAYER_MON2 2
@@ -209,10 +205,10 @@ struct TrainerMonItemCustomMoves
union TrainerMonPtr
{
- struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves;
- struct TrainerMonNoItemCustomMoves* NoItemCustomMoves;
- struct TrainerMonItemDefaultMoves* ItemDefaultMoves;
- struct TrainerMonItemCustomMoves* ItemCustomMoves;
+ struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ struct TrainerMonItemCustomMoves *ItemCustomMoves;
};
struct Trainer
@@ -278,7 +274,7 @@ struct DisableStruct
/*0x1A*/ u8 unk1A[2];
};
-extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT];
+extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
struct ProtectStruct
{
@@ -318,7 +314,7 @@ struct ProtectStruct
/* field_E */ u16 fieldE;
};
-extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT];
+extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
struct SpecialStatus
{
@@ -340,7 +336,7 @@ struct SpecialStatus
u8 field13;
};
-extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT];
+extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT];
struct SideTimer
{
@@ -463,7 +459,7 @@ struct BattleResources
struct BattleScriptsStack *AI_ScriptsStack;
};
-extern struct BattleResources* gBattleResources;
+extern struct BattleResources *gBattleResources;
#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
@@ -546,15 +542,12 @@ struct BattleStruct
u8 field_8C;
u8 field_8D;
u8 stringMoveType;
- u8 expGetterBank;
+ u8 expGetterBattlerId;
u8 field_90;
u8 field_91;
- u8 field_92;
- u8 field_93;
- u8 wallyBattleState;
- u8 wallyMovesState;
- u8 wallyWaitFrames;
- u8 wallyMoveFrames;
+ u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
+ u8 field_96;
+ u8 field_97;
u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // ask gamefreak why they declared it that way
u16 hpOnSwitchout[2];
u8 abilityPreventingSwitchout;
@@ -569,7 +562,6 @@ struct BattleStruct
u8 field_B5;
u8 field_B6;
u8 atkCancellerTracker;
- // void (*savedCallback)(void);
u16 usedHeldItems[MAX_BATTLERS_COUNT];
u8 chosenItem[4]; // why is this an u8?
u8 AI_itemType[2];
@@ -859,8 +851,7 @@ struct BattleHealthboxInfo
u8 specialAnimActive : 1; //x40
u8 flag_x80 : 1;
u8 field_1_x1 : 1;
- u8 field_1_x1E : 4;
- u8 field_1_x20 : 1;
+ u8 field_1_x1E : 5;
u8 field_1_x40 : 1;
u8 field_1_x80 : 1;
u8 healthboxBounceSpriteId;
@@ -879,7 +870,7 @@ struct BattleBarInfo
{
u8 healthboxSpriteId;
s32 maxValue;
- s32 currentValue;
+ s32 oldValue;
s32 receivedValue;
s32 currValue;
};
@@ -930,11 +921,11 @@ extern u16 gBattle_WIN0H;
extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1H;
extern u16 gBattle_WIN1V;
-extern struct BattleSpritesGfx* gMonSpritesGfx;
+extern struct BattleSpritesGfx *gMonSpritesGfx;
extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
-extern struct MonSpritesGfx* gMonSpritesGfxPtr;
+extern struct MonSpritesGfx *gMonSpritesGfxPtr;
extern u16 gTrainerBattleOpponent_A;
extern u16 gMoveToLearn;
extern u16 gBattleMovePower;
@@ -991,5 +982,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 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT];
#endif // GUARD_BATTLE_H
diff --git a/include/battle_2.h b/include/battle_2.h
index cf20bcd25..e3caeee3d 100644
--- a/include/battle_2.h
+++ b/include/battle_2.h
@@ -10,7 +10,6 @@ void CB2_QuitRecordedBattle(void);
void sub_8038528(struct Sprite* sprite);
void sub_8038A04(void); // unused
void VBlankCB_Battle(void);
-void nullsub_17(void);
void sub_8038B74(struct Sprite *sprite);
void sub_8038D64(void);
u32 sub_80391E0(u8 arrayId, u8 caseId);
@@ -48,6 +47,7 @@ void sub_800FD9C(void);
void sub_80120C4(struct Sprite *);
void sub_8012100(struct Sprite *);
void nullsub_12(void);
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
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 12df776be..aa51838e5 100644
--- a/include/battle_ai_script_commands.h
+++ b/include/battle_ai_script_commands.h
@@ -3,13 +3,19 @@
#include "global.h"
+// return values for BattleAI_ChooseMoveOrAction
+// 0 - 3 are move idx
+#define AI_CHOICE_FLEE 4
+#define AI_CHOICE_WATCH 5
+
void BattleAI_HandleItemUseBeforeAISetup(void);
-void BattleAI_SetupAIData(u8 defaultScoreMoves);
+void BattleAI_SetupAIData(void);
u8 BattleAI_ChooseMoveOrAction(void);
void ClearBankMoveHistory(u8 bank);
void RecordAbilityBattle(u8 bank, u8 abilityId);
void ClearBankAbilityHistory(u8 bank);
void RecordItemEffectBattle(u8 bank, u8 itemEffect);
void ClearBankItemEffectHistory(u8 bank);
+u8 BattleAI_GetAIActionToUse(void);
#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 8e4f2a7ea..ef179cdd1 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -96,6 +96,9 @@ void sub_80A6B90(struct BattleAnimBgData *, u32 arg1);
u8 sub_80A82E4(u8 bank);
bool8 AnimateBallThrow(struct Sprite *sprite);
+// battle_anim_special
+void sub_80F1720(u8 battler, struct Pokemon *mon);
+
enum
{
BATTLER_COORD_X,
@@ -125,7 +128,7 @@ bool8 IsDoubleBattle(void);
u8 sub_80A6D94(void);
u8 sub_80A8364(u8);
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
-void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
+void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite);
u8 GetBattlerSpriteDefault_Y(u8 bank);
u8 sub_80A82E4(u8 bank);
u8 GetSubstituteSpriteDefault_Y(u8 bank);
@@ -150,6 +153,7 @@ bool8 IsContest(void);
void sub_80759DC(u8 spriteId);
bool8 IsBattlerSpritePresent(u8 battlerId);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
+void StartAnimLinearTranslation(struct Sprite *sprite);
// battle_anim_mon_movement.c
void AnimTask_ShakeMon(u8 taskId);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 758a6e52f..e49911cf1 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -174,6 +174,7 @@ enum
CONTROLLER_CMDS_COUNT
};
+extern struct UnusedControllerStruct gUnknown_2022870;
// general functions
void HandleLinkBattleSetup(void);
@@ -243,6 +244,7 @@ void SetControllerToRecordedPlayer(void);
// opponent controller
void SetControllerToOpponent(void);
+void OpponentBufferExecCompleted(void);
// player partner controller
void SetControllerToPlayerPartner(void);
@@ -255,6 +257,11 @@ void SetControllerToPokedude(void);
// oak controller
void SetControllerToOakOrOldman(void);
+bool8 sub_80EB2E0(u8);
+void sub_80EB2F4(u8);
+void sub_80E8570(void);
+void sub_80E85C0(void);
+void sub_80E8598(void);
// link opponent
void SetControllerToLinkOpponent(void);
diff --git a/include/battle_interface.h b/include/battle_interface.h
index bdcb4d80e..162faa8cb 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -61,6 +61,7 @@ enum
HEALTHBOX_SAFARI_BALLS_TEXT
};
+void Task_HidePartyStatusSummary(u8 taskId);
u8 CreateBattlerHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
@@ -80,5 +81,6 @@ u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
u8 GetHPBarLevel(s16 hp, s16 maxhp);
void sub_80496C0(u8 spriteId, struct Pokemon *mon);
void sub_804981C(u8 spriteId, u8);
+s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
#endif // GUARD_BATTLE_INTERFACE_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
index ec00d1f96..78e3f8e43 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -6,5 +6,7 @@
u16 sub_8164FCC(u8, u8);
void sub_80E7524(u32 *);
void ValidateEReaderTrainer(void);
+u8 GetBattleTowerTrainerFrontSpriteId(void);
+u8 GetEreaderTrainerFrontSpriteId(void);
#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 6c20b967d..d3a7522c9 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -50,7 +50,7 @@
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
-#define MON_DATA_ALT_ABILITY 46
+#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
@@ -244,7 +244,7 @@ struct PokemonSubstruct3
/* 0x05 */ u32 spAttackIV:5;
/* 0x06 */ u32 spDefenseIV:5;
/* 0x07 */ u32 isEgg:1;
- /* 0x07 */ u32 altAbility:1;
+ /* 0x07 */ u32 abilityNum:1;
/* 0x08 */ u32 coolRibbon:3;
/* 0x08 */ u32 beautyRibbon:3;
@@ -342,7 +342,7 @@ struct BattleTowerPokemon
u32 spAttackIV:5;
u32 spDefenseIV:5;
u32 gap:1;
- u32 altAbility:1;
+ u32 abilityNum:1;
/*0x1C*/ u32 personality;
/*0x20*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x2B*/ u8 friendship;
@@ -366,7 +366,7 @@ struct BattlePokemon
/*0x16*/ u32 spAttackIV:5;
/*0x17*/ u32 spDefenseIV:5;
/*0x17*/ u32 isEgg:1;
- /*0x17*/ u32 altAbility:1;
+ /*0x17*/ u32 abilityNum:1;
/*0x18*/ s8 statStages[BATTLE_STATS_NO];
/*0x20*/ u8 ability;
/*0x21*/ u8 type1;
@@ -598,7 +598,7 @@ u8 GiveMonToPlayer(struct Pokemon *mon);
u8 CalculatePlayerPartyCount(void);
u8 CalculateEnemyPartyCount(void);
u8 GetMonsStateToDoubles(void);
-u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
+u8 GetAbilityBySpecies(u16 species, bool8 abilityNum);
u8 GetMonAbility(struct Pokemon *mon);
u8 GetSecretBaseTrainerPicIndex(void);
u8 GetSecretBaseTrainerNameIndex(void);
diff --git a/include/trainer_tower.h b/include/trainer_tower.h
index 5e7a90208..9cca2ea76 100644
--- a/include/trainer_tower.h
+++ b/include/trainer_tower.h
@@ -4,5 +4,6 @@
void PrintTrainerTowerRecords(void);
void InitTrainerTowerBattleStruct(void);
void FreeTrainerTowerBattleStruct(void);
+u8 GetTrainerTowerTrainerFrontSpriteId(void);
#endif //GUARD_TRAINER_TOWER_H