summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h94
-rw-r--r--include/battle_link_817C95C.h11
-rw-r--r--include/battle_script_commands.h8
-rw-r--r--include/battle_tv.h11
-rw-r--r--include/global.tv.h4
-rw-r--r--include/tv.h41
6 files changed, 142 insertions, 27 deletions
diff --git a/include/battle.h b/include/battle.h
index 09a53c8a0..b0554a914 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -353,6 +353,91 @@ struct BattleResults
u8 catchAttempts[11]; // 0x36
};
+struct BattleTv_Side
+{
+ u32 spikesMonId:3;
+ u32 reflectMonId:3;
+ u32 lightScreenMonId:3;
+ u32 safeguardMonId:3;
+ u32 mistMonId:3;
+ u32 futureSightMonId:3;
+ u32 doomDesireMonId:3;
+ u32 perishSongMonId:3;
+ u32 wishMonId:3;
+ u32 grudgeMonId:3;
+ u32 usedMoveSlot:2;
+ u32 spikesMoveSlot:2;
+ u32 reflectMoveSlot:2;
+ u32 lightScreenMoveSlot:2;
+ u32 safeguardMoveSlot:2;
+ u32 mistMoveSlot:2;
+ u32 futureSightMoveSlot:2;
+ u32 doomDesireMoveSlot:2;
+ u32 perishSongMoveSlot:2;
+ u32 wishMoveSlot:2;
+ u32 grudgeMoveSlot:2;
+ u32 destinyBondMonId:3;
+ u32 destinyBondMoveSlot:2;
+ u32 faintCause:4;
+ u32 faintCauseMonId:3;
+ u32 explosion:1;
+ u32 explosionMoveSlot:2;
+ u32 explosionMonId:3;
+ u32 perishSong:1;
+};
+
+struct BattleTv_Position
+{
+ u32 curseMonId:3;
+ u32 leechSeedMonId:3;
+ u32 nightmareMonId:3;
+ u32 wrapMonId:3;
+ u32 attractMonId:3;
+ u32 confusionMonId:3;
+ u32 curseMoveSlot:2;
+ u32 leechSeedMoveSlot:2;
+ u32 nightmareMoveSlot:2;
+ u32 wrapMoveSlot:2;
+ u32 attractMoveSlot:2;
+ u32 confusionMoveSlot:2;
+ u32 waterSportMoveSlot:2;
+ u32 waterSportMonId:3;
+ u32 mudSportMonId:3;
+ u32 mudSportMoveSlot:2;
+ u32 ingrainMonId:3;
+ u32 ingrainMoveSlot:2;
+ u32 attackedByMonId:3;
+ u32 attackedByMoveSlot:2;
+};
+
+struct BattleTv_Mon
+{
+ u32 psnMonId:3;
+ u32 badPsnMonId:3;
+ u32 brnMonId:3;
+ u32 prlzMonId:3;
+ u32 slpMonId:3;
+ u32 frzMonId:3;
+ u32 psnMoveSlot:2;
+ u32 badPsnMoveSlot:2;
+ u32 brnMoveSlot:2;
+ u32 prlzMoveSlot:2;
+ u32 slpMoveSlot:2;
+ u32 frzMoveSlot:2;
+};
+
+struct BattleTv
+{
+ struct BattleTv_Mon mon[2][6]; // [side][partyId]
+ struct BattleTv_Position pos[2][2]; // [side][flank]
+ struct BattleTv_Side side[2]; // [side]
+};
+
+struct BattleTvMovePoints
+{
+ s16 points[2][PARTY_SIZE * 4];
+};
+
struct BattleStruct
{
u8 turnEffectsTracker;
@@ -432,7 +517,7 @@ struct BattleStruct
u8 field_B0;
u8 hpScale;
u8 synchronizeMoveEffect;
- u8 field_B3;
+ bool8 anyMonHasTransformed;
void (*savedCallback)(void);
u16 usedHeldItems[MAX_BATTLERS_COUNT];
u8 chosenItem[4]; // why is this an u8?
@@ -457,9 +542,9 @@ struct BattleStruct
u8 wishPerishSongBattlerId;
bool8 overworldWeatherDone;
u8 atkCancellerTracker;
- u8 field_1A4[96];
- u8 field_204[104];
- u8 field_26C[40];
+ struct BattleTvMovePoints tvMovePoints;
+ struct BattleTv tv;
+ u8 notSureWhatFieldLol[0x28];
u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_298[8];
u8 field_2A0;
@@ -478,6 +563,7 @@ struct BattleStruct
#define IS_MOVE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
#define IS_MOVE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
+
#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
diff --git a/include/battle_link_817C95C.h b/include/battle_link_817C95C.h
deleted file mode 100644
index cb2cb0b27..000000000
--- a/include/battle_link_817C95C.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef GUARD_BATTLE_LINK_817C95C_H
-#define GUARD_BATTLE_LINK_817C95C_H
-
-void sub_817C95C(u16 stringId);
-void sub_817E0FC(u16 move, u16 weatherFlags, struct DisableStruct *disableStructPtr);
-void sub_817E32C(u8 animationId);
-void sub_817E3F4(void);
-void sub_817F2A8(void);
-u8 GetBattlerMoveSlotId(u8 bank, u16 move);
-
-#endif // GUARD_BATTLE_LINK_817C95C_H
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 6c84d1f0f..142ac1f7b 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -4,16 +4,16 @@
#define WINDOW_CLEAR 0x1
#define WINDOW_x80 0x80
-void AI_CalcDmg(u8 bankAtk, u8 bankDef);
-u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
+void AI_CalcDmg(u8 battlerIdAtk, u8 battlerIdDef);
+u8 TypeCalc(u16 move, u8 battlerIdAtk, u8 battlerIdDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 GetBattlerTurnOrderNum(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 battlerId);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
void BufferMoveToLearnIntoBattleTextBuff2(void);
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
-bool8 UproarWakeUpCheck(u8 bank);
+bool8 UproarWakeUpCheck(u8 battlerId);
extern void (* const gBattleScriptingCommandsTable[])(void);
extern const u8 gUnknown_0831C494[][4];
diff --git a/include/battle_tv.h b/include/battle_tv.h
new file mode 100644
index 000000000..72466d73b
--- /dev/null
+++ b/include/battle_tv.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_BATTLE_TV_H
+#define GUARD_BATTLE_TV_H
+
+void BattleTv_SetDataBasedOnString(u16 stringId);
+void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruct *disableStructPtr);
+void BattleTv_SetDataBasedOnAnimation(u8 animationId);
+void TryPutLinkBattleTvShowOnAir(void);
+void BattleTv_ClearExplosionFaintCause(void);
+u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId);
+
+#endif // GUARD_BATTLE_TV_H
diff --git a/include/global.tv.h b/include/global.tv.h
index 5f65aa8e0..81f181cf3 100644
--- a/include/global.tv.h
+++ b/include/global.tv.h
@@ -188,11 +188,11 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
- /*0x02*/ u16 species;
+ /*0x02*/ u16 speciesOpponent;
/*0x04*/ u8 playerName[8];
/*0x0C*/ u8 linkOpponentName[8];
/*0x14*/ u16 move;
- /*0x16*/ u16 species2;
+ /*0x16*/ u16 speciesPlayer;
/*0x18*/ u8 battleType;
/*0x19*/ u8 language;
/*0x1A*/ u8 linkOpponentLanguage;
diff --git a/include/tv.h b/include/tv.h
index eca11385e..19c900ba8 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -4,17 +4,46 @@
extern u8 *const gTVStringVarPtrs[3];
void ClearTVShowData(void);
-void PutPokemonTodayCaughtOnAir(void);
+void sub_80EE184(void);
+void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);
+void sub_80EE8C8(u16 winStreak, u8 facility);
+void DoTVShow(void);
+void DoTVShowInSearchOfTrainers(void);
+void sub_80EDCE8(void);
+void sub_80EE2CC(void);
+void sub_80EE72C(void);
+void sub_80EED10(void);
+void sub_80EED34(void);
+void sub_80EED60(u16 delta);
+void sub_80F01B8(void);
+void sub_80F01E8(void *src, u32 size, u8 masterIdx);
+void sub_80EE4DC(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
+void sub_80F14F8(TVShow *shows);
+size_t CountDigits(int value);
u8 GetRibbonCount(struct Pokemon *pokemon);
-void TV_PutSecretBaseVisitOnTheAir(void);
-void sub_80EE184(void);
+void sub_80EDE70(u16 nCoinsSpent);
+void sub_80EDE84(u16 nCoinsSpent);
+void sub_80EDD78(u16 nCoinsPaidOut);
void sub_80EEA70(void);
-void sub_80F14F8(TVShow *shows);
-size_t sub_80EF370(int value);
-bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
+void sub_80EDB44(void);
+void sub_80EDC60(const u16 *words);
+void sub_80EDA80(void);
+void sub_80F0C7C(void *src, u32 size, u8 masterIdx);
+void sub_80F0BB8(void);
+void sub_80ED950(bool8 flag);
+void sub_80EEC80(void);
+void sub_80EECA4(void);
+void sub_80EECC8(void);
+void sub_80EECEC(void);
+void sub_80F1208(TVShow *shows);
+void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed);
void SetPokemonAnglerSpecies(u16 species);
void UpdateTVShowsPerDay(u16 days);
+void PutPokemonTodayCaughtOnAir(void);
+void TV_PutSecretBaseVisitOnTheAir(void);
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
+void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
#endif //GUARD_TV_H