summaryrefslogtreecommitdiff
path: root/include/battle.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/battle.h')
-rw-r--r--include/battle.h68
1 files changed, 36 insertions, 32 deletions
diff --git a/include/battle.h b/include/battle.h
index eafa72098..81c1d341d 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -13,17 +13,18 @@
/*
* A battler may be in one of four positions on the field. The first bit determines
* what side the battler is on, either the player's side or the opponent's side.
- * The second bit determines whether the pokemon is on the left or right of the
- * given side. Note that the opponent's mons are drawn opposite because the position
- * numbers correspond to their perspective. The battler number is usually the same
- * as the position, except in the case of link battles.
+ * The second bit determines what flank the battler is on, either the left or right.
+ * Note that the opponent's flanks are drawn corresponding to their perspective, so
+ * their right mon appears on the left, and their left mon appears on the right.
+ * The battler ID is usually the same as the position, except in the case of link battles.
*
* + ------------------------- +
- * | Opponent's side |
+ * | Opponent's side |
+ * | Right Left |
* | 3 1 |
* | |
- * | |
* | Player's side |
+ * | Left Right |
* | 0 2 |
* ----------------------------+
* | |
@@ -38,12 +39,16 @@
#define B_POSITION_PLAYER_RIGHT 2
#define B_POSITION_OPPONENT_RIGHT 3
-#define B_POSITION_PARTNER(position) ((position) ^ 2)
-#define B_POSITION_OPPOSITE(position) ((position) ^ 1)
+// These macros can be used with either battler ID or positions to get the partner or the opposite mon
+#define BATTLE_OPPOSITE(id) ((id) ^ 1)
+#define BATTLE_PARTNER(id) ((id) ^ 2)
#define B_SIDE_PLAYER 0
#define B_SIDE_OPPONENT 1
+#define B_FLANK_LEFT 0
+#define B_FLANK_RIGHT 1
+
#define BIT_SIDE 1
#define BIT_FLANK 2
@@ -170,7 +175,7 @@ extern u8 gBattleOutcome;
extern u32 gStatuses3[MAX_BATTLERS_COUNT];
-//
+// Not really sure what a "hitmarker" is.
#define HITMARKER_x10 0x00000010
#define HITMARKER_x20 0x00000020
@@ -214,21 +219,24 @@ extern u32 gHitMarker;
extern u16 gSideStatuses[2];
-#define ACTION_USE_MOVE 0
-#define ACTION_USE_ITEM 1
-#define ACTION_SWITCH 2
-#define ACTION_RUN 3
-#define ACTION_WATCHES_CAREFULLY 4
-#define ACTION_SAFARI_ZONE_BALL 5
-#define ACTION_POKEBLOCK_CASE 6
-#define ACTION_GO_NEAR 7
-#define ACTION_SAFARI_ZONE_RUN 8
-#define ACTION_9 9
-#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
-#define ACTION_CANCEL_PARTNER 12 // when choosing an action
-#define ACTION_FINISHED 12 // when executing an action
-#define ACTION_NOTHING_FAINTED 13 // when choosing an action
-#define ACTION_INIT_VALUE 0xFF
+// Battle Actions
+// These determine what each battler will do in a turn
+#define B_ACTION_USE_MOVE 0
+#define B_ACTION_USE_ITEM 1
+#define B_ACTION_SWITCH 2
+#define B_ACTION_RUN 3
+#define B_ACTION_SAFARI_WATCH_CAREFULLY 4
+#define B_ACTION_SAFARI_BALL 5
+#define B_ACTION_SAFARI_POKEBLOCK 6
+#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_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
+#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define B_ACTION_NONE 0xFF
#define MOVE_RESULT_MISSED (1 << 0)
#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1)
@@ -421,8 +429,8 @@ struct DisableStruct
/*0x12*/ u8 chargeTimer2 : 4;
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
- /*0x14*/ u8 bankPreventingEscape;
- /*0x15*/ u8 bankWithSureHit;
+ /*0x14*/ u8 battlerPreventingEscape;
+ /*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1;
@@ -594,10 +602,6 @@ struct BattleResources
extern struct BattleResources* gBattleResources;
-#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
-#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
-#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
-
struct BattleResults
{
u8 playerFaintCounter; // 0x0
@@ -836,7 +840,7 @@ struct BattleScripting
u8 animArg2;
u16 tripleKickPower;
u8 atk49_state;
- u8 bankWithAbility;
+ u8 battlerWithAbility;
u8 multihitMoveEffect;
u8 battler;
u8 animTurn;
@@ -946,7 +950,7 @@ struct BattleBarInfo
struct BattleSpriteData
{
- struct BattleSpriteInfo *bankData;
+ struct BattleSpriteInfo *battlerData;
struct BattleHealthboxInfo *healthBoxesData;
struct BattleAnimationInfo *animationData;
struct BattleBarInfo *battleBars;