diff options
Diffstat (limited to 'include/battle.h')
-rw-r--r-- | include/battle.h | 117 |
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 |