summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-06-20 23:07:51 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-06-20 23:07:51 +0200
commitab36efdaf4a7f64df9bbfae153eb88cd9c5b29b0 (patch)
treec3cf7d739cedf397c0b1a4db65046cfce7635e70 /include
parent94752d420769dfc205b3f717c660f33a6eb2b6fb (diff)
document bounce effect
Diffstat (limited to 'include')
-rw-r--r--include/battle.h106
-rw-r--r--include/battle_controllers.h8
-rw-r--r--include/battle_main.h12
-rw-r--r--include/global.h6
4 files changed, 71 insertions, 61 deletions
diff --git a/include/battle.h b/include/battle.h
index 62caa2cfe..2651407fb 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -33,7 +33,7 @@
#define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8
// The exact purposes of these are unclear
-#define B_ACTION_UNKNOWN9 9
+#define B_ACTION_WALLY_THROW 9
#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
#define B_ACTION_FINISHED 12 // when executing an action
@@ -150,29 +150,29 @@ struct DisableStruct
/*0x08*/ u8 protectUses;
/*0x09*/ u8 stockpileCounter;
/*0x0A*/ u8 substituteHP;
- /*0x0B*/ u8 disableTimer1 : 4;
- /*0x0B*/ u8 disableTimer2 : 4;
+ /*0x0B*/ u8 disableTimer1:4;
+ /*0x0B*/ u8 disableTimer2:4;
/*0x0C*/ u8 encoredMovePos;
/*0x0D*/ u8 unkD;
- /*0x0E*/ u8 encoreTimer1 : 4;
- /*0x0E*/ u8 encoreTimer2 : 4;
- /*0x0F*/ u8 perishSongTimer1 : 4;
- /*0x0F*/ u8 perishSongTimer2 : 4;
+ /*0x0E*/ u8 encoreTimer1:4;
+ /*0x0E*/ u8 encoreTimer2:4;
+ /*0x0F*/ u8 perishSongTimer1:4;
+ /*0x0F*/ u8 perishSongTimer2:4;
/*0x10*/ u8 furyCutterCounter;
- /*0x11*/ u8 rolloutCounter1 : 4;
- /*0x11*/ u8 rolloutCounter2 : 4;
- /*0x12*/ u8 chargeTimer1 : 4;
- /*0x12*/ u8 chargeTimer2 : 4;
+ /*0x11*/ u8 rolloutCounter1:4;
+ /*0x11*/ u8 rolloutCounter2:4;
+ /*0x12*/ u8 chargeTimer1:4;
+ /*0x12*/ u8 chargeTimer2:4;
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
/*0x14*/ u8 battlerPreventingEscape;
/*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
- /*0x18*/ u8 truantCounter : 1;
- /*0x18*/ u8 truantUnknownBit : 1;
- /*0x18*/ u8 unk18_a_2 : 2;
- /*0x18*/ u8 unk18_b : 4;
+ /*0x18*/ u8 truantCounter:1;
+ /*0x18*/ u8 truantUnknownBit:1;
+ /*0x18*/ u8 unk18_a_2:2;
+ /*0x18*/ u8 unk18_b:4;
/*0x19*/ u8 rechargeCounter;
/*0x1A*/ u8 unk1A[2];
};
@@ -201,12 +201,12 @@ struct ProtectStruct
u32 flag2Unknown:1; // 0x2
u32 flinchImmobility:1; // 0x4
u32 notFirstStrike:1; // 0x8
- u32 flag_x10 : 1; // 0x10
- u32 flag_x20 : 1; // 0x20
- u32 flag_x40 : 1; // 0x40
- u32 flag_x80 : 1; // 0x80
+ u32 flag_x10:1; // 0x10
+ u32 flag_x20:1; // 0x20
+ u32 flag_x40:1; // 0x40
+ u32 flag_x80:1; // 0x80
/* field_3 */
- u32 field3 : 8;
+ u32 field3:8;
/* field_4 */ u32 physicalDmg;
/* field_8 */ u32 specialDmg;
@@ -217,14 +217,14 @@ struct ProtectStruct
struct SpecialStatus
{
- u8 statLowered : 1; // 0x1
- u8 lightningRodRedirected : 1; // 0x2
+ u8 statLowered:1; // 0x1
+ u8 lightningRodRedirected:1; // 0x2
u8 restoredBankSprite: 1; // 0x4
- u8 intimidatedPoke : 1; // 0x8
- u8 traced : 1; // 0x10
- u8 flag20 : 1;
- u8 flag40 : 1;
- u8 focusBanded : 1;
+ u8 intimidatedPoke:1; // 0x8
+ u8 traced:1; // 0x10
+ u8 flag20:1;
+ u8 flag40:1;
+ u8 focusBanded:1;
u8 field1[3];
s32 dmg;
s32 physicalDmg;
@@ -629,11 +629,11 @@ u8 GetBattlerAtPosition(u8 bank);
struct BattleSpriteInfo
{
- u16 invisible : 1; // 0x1
- u16 lowHpSong : 1; // 0x2
- u16 behindSubstitute : 1; // 0x4
- u16 flag_x8 : 1; // 0x8
- u16 hpNumbersNoBars : 1; // 0x10
+ u16 invisible:1; // 0x1
+ u16 lowHpSong:1; // 0x2
+ u16 behindSubstitute:1; // 0x4
+ u16 flag_x8:1; // 0x8
+ u16 hpNumbersNoBars:1; // 0x10
u16 transformSpecies;
};
@@ -647,12 +647,12 @@ struct BattleAnimationInfo
u8 field_6;
u8 field_7;
u8 ballThrowCaseId;
- u8 field_9_x1 : 1;
- u8 field_9_x2 : 1;
- u8 field_9_x1C : 3;
- u8 field_9_x20 : 1;
- u8 field_9_x40 : 1;
- u8 field_9_x80 : 1;
+ u8 field_9_x1:1;
+ u8 field_9_x2:1;
+ u8 field_9_x1C:3;
+ u8 field_9_x20:1;
+ u8 field_9_x40:1;
+ u8 field_9_x80:1;
u8 field_A;
u8 field_B;
u8 field_C;
@@ -663,21 +663,21 @@ struct BattleAnimationInfo
struct BattleHealthboxInfo
{
- u8 flag_x1 : 1;
- u8 flag_x2 : 1;
- u8 flag_x4 : 1;
- u8 ballAnimActive : 1; // 0x8
- 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 flag_x1:1;
+ u8 healthboxIsBouncing:1;
+ u8 battlerIsBouncing:1;
+ u8 ballAnimActive:1; // 0x8
+ 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 healthboxBounceSpriteId;
+ u8 battlerBounceSpriteId;
u8 animationState;
u8 field_5;
u8 field_6;
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index a0fc41b52..c5f5f48d7 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -82,8 +82,8 @@ enum
struct UnusedControllerStruct
{
- u8 field_0 : 7;
- u8 flag_x80 : 1;
+ u8 field_0:7;
+ u8 flag_x80:1;
};
struct HpAndStatus
@@ -161,7 +161,7 @@ enum
CONTROLLER_INTROTRAINERBALLTHROW,
CONTROLLER_DRAWPARTYSTATUSSUMMARY,
CONTROLLER_49,
- CONTROLLER_50,
+ CONTROLLER_ENDBOUNCE,
CONTROLLER_SPRITEINVISIBILITY,
CONTROLLER_BATTLEANIMATION,
CONTROLLER_LINKSTANDBYMSG,
@@ -231,7 +231,7 @@ void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
void BtlController_EmitCmd49(u8 bufferId);
-void BtlController_EmitCmd50(u8 bufferId);
+void BtlController_EmitEndBounceEffect(u8 bufferId);
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
diff --git a/include/battle_main.h b/include/battle_main.h
index a725b631f..27e61c8fc 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -25,6 +25,10 @@ struct TrainerMoney
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
+// defines for the 'DoBounceEffect' function
+#define BOUNCE_MON 0x0
+#define BOUNCE_HEALTHBOX 0x1
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
void CB2_QuitRecordedBattle(void);
@@ -38,15 +42,15 @@ u32 sub_80391E0(u8 arrayId, u8 caseId);
u32 sub_80397C4(u32 setId, u32 tableId);
void oac_poke_opponent(struct Sprite *sprite);
void SpriteCallbackDummy_2(struct Sprite *sprite);
-void sub_8039934(struct Sprite *sprite);
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8039AD8(struct Sprite *sprite);
void sub_8039B2C(struct Sprite *sprite);
void sub_8039B58(struct Sprite *sprite);
void sub_8039BB4(struct Sprite *sprite);
void sub_80105DC(struct Sprite *sprite);
void sub_8039C00(struct Sprite *sprite);
-void dp11b_obj_instanciate(u8 battlerId, u8 b, s8 c, s8 d);
-void dp11b_obj_free(u8 battlerId, bool8 b);
+void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
+void EndBounceEffect(u8 battlerId, bool8 b);
void sub_8039E44(struct Sprite *sprite);
void sub_8039E60(struct Sprite *sprite);
void sub_8039E84(struct Sprite *sprite);
@@ -80,6 +84,6 @@ extern const u8 gStatusConditionString_IceJpn[8];
extern const u8 gStatusConditionString_ConfusionJpn[8];
extern const u8 gStatusConditionString_LoveJpn[8];
-extern const u8 * const gStatusConditionStringsTable[7][2];
+extern const u8 *const gStatusConditionStringsTable[7][2];
#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/global.h b/include/global.h
index d26184270..5a37cdc1b 100644
--- a/include/global.h
+++ b/include/global.h
@@ -35,12 +35,18 @@
// Converts a number to Q4.12 fixed-point format
#define Q_4_12(n) ((s16)((n) * 4096))
+// Converts a number to Q24.8 fixed-point format
+#define Q_24_8(n) ((s32)((n) * 256))
+
// Converts a Q8.8 fixed-point format number to a regular integer
#define Q_8_8_TO_INT(n) ((int)((n) / 256))
// Converts a Q4.12 fixed-point format number to a regular integer
#define Q_4_12_TO_INT(n) ((int)((n) / 4096))
+// Converts a Q24.8 fixed-point format number to a regular integer
+#define Q_24_8_TO_INT(n) ((int)((n) >> 8))
+
#define PARTY_SIZE 6
#define POKEMON_SLOTS_NUMBER 412