summaryrefslogtreecommitdiff
path: root/include/battle.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/battle.h')
-rw-r--r--include/battle.h117
1 files changed, 73 insertions, 44 deletions
diff --git a/include/battle.h b/include/battle.h
index 3328c691f..ace2bb4ad 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -229,6 +229,7 @@
#define BATTLE_TERRAIN_ROCK 6
#define BATTLE_TERRAIN_CAVE 7
#define BATTLE_TERRAIN_INSIDE 8
+#define BATTLE_TERRAIN_PLAIN 9
// array entries for battle communication
#define MULTIUSE_STATE 0x0
@@ -348,7 +349,7 @@ struct UnknownFlags
struct DisableStruct
{
- /*0x00*/ u32 unk0;
+ /*0x00*/ u32 transformedMonPersonality;
/*0x04*/ u16 disabledMove;
/*0x06*/ u16 encoredMove;
/*0x08*/ u8 protectUses;
@@ -636,10 +637,10 @@ struct BattleStruct
u8 field_91;
u8 field_92;
u8 field_93;
- u8 field_94;
- u8 field_95;
- u8 field_96;
- u8 field_97;
+ u8 wallyBattleState;
+ u8 wallyMovesState;
+ u8 wallyWaitFrames;
+ u8 wallyMoveFrames;
u8 mirrorMoves[8]; // ask gamefreak why they declared it that way
u8 field_A0;
u8 field_A1;
@@ -657,7 +658,7 @@ struct BattleStruct
u8 field_B3;
void (*savedCallback)(void);
u16 usedHeldItems[BATTLE_BANKS_COUNT];
- u8 field_C0[4];
+ u8 chosenItem[4]; // why is this an u8?
u8 AI_itemType[2];
u8 AI_itemFlags[2];
u16 choicedMove[BATTLE_BANKS_COUNT];
@@ -772,38 +773,39 @@ extern struct BattleStruct* gBattleStruct;
#define MOVE_EFFECT_AFFECTS_USER 0x40
#define MOVE_EFFECT_CERTAIN 0x80
-// battle animations ids
-
-#define B_ANIM_CASTFORM_CHANGE 0x0
-#define B_ANIM_STATS_CHANGE 0x1
-#define B_ANIM_SUBSTITUTE_FADE 0x2
-#define B_ANIM_SUBSTITUTE_APPEAR 0x3
-#define B_ANIM_x4 0x4
-#define B_ANIM_ITEM_KNOCKOFF 0x5
-#define B_ANIM_TURN_TRAP 0x6
-#define B_ANIM_ITEM_EFFECT 0x7
-#define B_ANIM_SMOKEBALL_ESCAPE 0x8
-#define B_ANIM_HANGED_ON 0x9
-#define B_ANIM_RAIN_CONTINUES 0xA
-#define B_ANIM_SUN_CONTINUES 0xB
-#define B_ANIM_SANDSTORM_CONTINUES 0xC
-#define B_ANIM_HAIL_CONTINUES 0xD
-#define B_ANIM_LEECH_SEED_DRAIN 0xE
-#define B_ANIM_MON_HIT 0xF
-#define B_ANIM_ITEM_STEAL 0x10
-#define B_ANIM_SNATCH_MOVE 0x11
-#define B_ANIM_FUTURE_SIGHT_HIT 0x12
-#define B_ANIM_x13 0x13
-#define B_ANIM_x14 0x14
-#define B_ANIM_INGRAIN_HEAL 0x15
-#define B_ANIM_WISH_HEAL 0x16
-#define B_ANIM_x17 0x17
-#define B_ANIM_x18 0x18
-#define B_ANIM_x19 0x19
-#define B_ANIM_x1A 0x1A
-#define B_ANIM_x1B 0x1B
-#define B_ANIM_x1C 0x1C
-#define B_ANIM_x1D 0x1D
+// table ids for general animations
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_x4 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_x13 0x13
+#define B_ANIM_x14 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animations table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
#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
@@ -878,6 +880,26 @@ void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadSubstituteSpriteGfx(u8 bank, bool8 arg1);
+void nullsub_24(u16 arg0);
+void nullsub_25(u8 arg0);
+void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
+void sub_805D714(struct Sprite *sprite);
+void DecompressTrainerBackPic(u16 backPicId, u8 bank);
+void DecompressTrainerFrontPic(u16 frontPicId, u8 bank);
+void FreeTrainerFrontPicPalette(u16 frontPicId);
+void sub_805D7AC(struct Sprite *sprite);
+bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
+void sub_805EB9C(u8 arg0);
+void sub_805E394(void);
+void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move);
+void DoStatusAnimation(bool8 isStatus2, u32 status);
+void DoSpecialBattleAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId);
+bool8 DoBattleAnimationFromTable(u8 active, u8 atkBank, u8 defBank, u8 tableId, u16 argument);
+void CopyBattleSpriteInvisibility(u8 bank);
+u16 ChooseMoveAndTargetInBattlePalace(void);
+void LoadBattleBarGfx(u8 arg0);
+bool8 mplay_80342A4(u8 bank);
+void sub_805EEE0(u8 bank);
enum
{
@@ -890,7 +912,6 @@ enum
BACK_PIC_WALLY,
BACK_PIC_STEVEN
};
-void LoadBackTrainerBankSpriteGfx(u8 backPicId, u8 bank);
// rom_80A5C6C
u8 GetBankSide(u8 bank);
@@ -916,7 +937,7 @@ struct BattleAnimationInfo
u8 field_5;
u8 field_6;
u8 field_7;
- u8 field_8;
+ u8 ballThrowCaseId;
u8 field_9_x1 : 1;
u8 field_9_x2 : 1;
u8 field_9_x1C : 3;
@@ -931,11 +952,18 @@ struct BattleHealthboxInfo
u8 flag_x2 : 1;
u8 flag_x4 : 1;
u8 flag_x8 : 1;
- u8 flag_x10 : 1;
- u8 field_1;
+ u8 statusAnimActive : 1; // x10
+ u8 animFromTableActive : 1; // x20
+ 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_x40 : 1;
+ u8 field_1_x80 : 1;
u8 field_2;
u8 field_3;
- u8 field_4;
+ u8 animationState;
u8 field_5;
u8 field_6;
u8 field_7;
@@ -950,7 +978,7 @@ struct BattleBarInfo
u8 healthboxSpriteId;
s32 maxValue;
s32 currentValue;
- s32 field_C;
+ s32 receivedValue;
s32 field_10;
};
@@ -987,5 +1015,6 @@ extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
extern struct MonSpritesGfx* gMonSpritesGfxPtr;
+extern u16 gTrainerBattleOpponent_A;
#endif // GUARD_BATTLE_H