summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h9
-rw-r--r--include/constants/battle_constants.h24
-rwxr-xr-xinclude/ewram.h2
-rw-r--r--include/rom_8077ABC.h6
-rw-r--r--include/trainer.h270
5 files changed, 168 insertions, 143 deletions
diff --git a/include/battle.h b/include/battle.h
index 0824fc46c..dd35cc303 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -501,7 +501,7 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE];
extern struct BattleResults gBattleResults;
extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE];
extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE];
-extern struct sideTimer gSideTimer[2];
+extern struct sideTimer gSideTimers[2];
extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
@@ -641,11 +641,8 @@ void BattleTurnPassed(void);
// asm/battle_2.o
void sub_8012324(void);
-void sub_8012FBC(u8, u8);
+void SwapTurnOrder(u8, u8);
u8 GetWhoStrikesFirst(u8, u8, u8);
-void TurnValuesCleanUp(u8);
-void SpecialStatusesClear(void);
-void sub_80138F0(void);
void sub_80155A4();
void CancelMultiTurnMoves(u8 bank);
void PrepareStringBattle();
@@ -660,6 +657,7 @@ u8 sub_80170DC();
u8 sub_80173A4();
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move);
u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
+void b_clear_atk_up_if_hit_flag_unless_enraged(void);
// asm/battle_4.o
void AI_CalcDmg(u8, u8);
@@ -686,6 +684,7 @@ void sub_80324F8(struct Pokemon *, u8);
void sub_8032638();
void sub_8032AA8(u8, u8);
void SetBankFuncToOpponentBufferRunCommand(void);
+void BattleMusicStop(void);
// asm/battle_9.o
void SetBankFuncToLinkOpponentBufferRunCommand(void);
diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h
index f7efb0dfd..892b3e7f6 100644
--- a/include/constants/battle_constants.h
+++ b/include/constants/battle_constants.h
@@ -65,6 +65,7 @@
#define HITMARKER_PURSUIT_TRAP 0x00001000
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
+#define HITMARKER_RUN 0x00008000
#define HITMARKER_IGNORE_ON_AIR 0x00010000
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
@@ -88,6 +89,11 @@
#define MOVESTATUS_ENDURED (1 << 6)
#define MOVESTATUS_HUNGON (1 << 7)
+#define IDENTITY_PLAYER_MON1 0
+#define IDENTITY_OPPONENT_MON1 1
+#define IDENTITY_PLAYER_MON2 2
+#define IDENTITY_OPPONENT_MON2 3
+
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
#define BATTLE_TYPE_WILD 0x0004
@@ -117,6 +123,8 @@
#define BATTLE_OUT_OF_BALLS 0x8
#define BATTLE_OPPONENT_TELEPORTED 0xA
+#define OUTCOME_LINK_BATTLE_RUN 0x80
+
#define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
#define SIDE_STATUS_X4 (1 << 2)
@@ -126,6 +134,22 @@
#define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
+#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
+
#define TARGET_SELECTED_POKEMON 0
#define TARGET_SPECIAL (1 << 0)
#define TARGET_UNK2 (1 << 1)
diff --git a/include/ewram.h b/include/ewram.h
index 07f9d1ad2..d5e53393b 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -108,6 +108,7 @@ extern u8 gSharedMem[];
#define ewram16010arr(bank) (gSharedMem[0x16010 + bank])
#define ewram1601B (gSharedMem[0x1601B])
#define eDynamicMoveType (gSharedMem[0x1601C])
+#define eFocusPunchBank (gSharedMem[0x1601D])
#define eDmgMultiplier (gSharedMem[0x1601F])
#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
#define ewram16020arr(i) (gSharedMem[0x16020 + i])
@@ -175,6 +176,7 @@ extern u8 gSharedMem[];
#define ewram16108arr(i) (gSharedMem[0x16108 + i])
#define ewram16110 (gSharedMem[0x16110])
#define ewram16111 (gSharedMem[0x16111])
+#define eMultihitMoveEffect (gSharedMem[0x16112])
#define ewram16113 (gSharedMem[0x16113])
#define ewram16400 (gSharedMem + 0x16400)
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index dda90c48f..21ec88a90 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -25,9 +25,9 @@ u8 GetBankSide(u8 slot);
u8 GetBankSide(u8);
u8 GetBankIdentity(u8);
u8 GetBankIdentity(u8 slot);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8 state);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8 state);
bool8 IsBankSpritePresent(u8);
bool8 IsDoubleBattle();
u8 IsDoubleBattle(void);
diff --git a/include/trainer.h b/include/trainer.h
index 2e0beb342..e8f2776d2 100644
--- a/include/trainer.h
+++ b/include/trainer.h
@@ -17,83 +17,83 @@
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
enum {
- TRAINER_CLASS_AQUA_LEADER,
- TRAINER_CLASS_TEAM_AQUA_M,
- TRAINER_CLASS_TEAM_AQUA_F,
- TRAINER_CLASS_AROMA_LADY,
- TRAINER_CLASS_RUIN_MANIAC,
- TRAINER_CLASS_INTERVIEWER,
- TRAINER_CLASS_TUBER_F,
- TRAINER_CLASS_TUBER_M,
- TRAINER_CLASS_COOL_TRAINER_M,
- TRAINER_CLASS_COOL_TRAINER_F,
- TRAINER_CLASS_HEX_MANIAC,
- TRAINER_CLASS_LADY,
- TRAINER_CLASS_BEAUTY,
- TRAINER_CLASS_RICH_BOY,
- TRAINER_CLASS_POKEMANIAC,
- TRAINER_CLASS_SWIMMER_M,
- TRAINER_CLASS_BLACK_BELT,
- TRAINER_CLASS_GUITARIST,
- TRAINER_CLASS_KINDLER,
- TRAINER_CLASS_CAMPER,
- TRAINER_CLASS_BUG_MANIAC,
- TRAINER_CLASS_PSYCHIC_M,
- TRAINER_CLASS_PSYCHIC_F,
- TRAINER_CLASS_GENTLEMAN,
- TRAINER_CLASS_ELITE_FOUR_M,
- TRAINER_CLASS_ELITE_FOUR_F,
- TRAINER_CLASS_LEADER_F,
- TRAINER_CLASS_LEADER_M,
- TRAINER_CLASS_LEADER_MF,
- TRAINER_CLASS_SCHOOL_KID_M,
- TRAINER_CLASS_SCHOOL_KID_F,
- TRAINER_CLASS_SR_AND_JR,
- TRAINER_CLASS_POKEFAN_M,
- TRAINER_CLASS_POKEFAN_F,
- TRAINER_CLASS_EXPERT_M,
- TRAINER_CLASS_EXPERT_F,
- TRAINER_CLASS_YOUNGSTER,
- TRAINER_CLASS_CHAMPION,
- TRAINER_CLASS_FISHERMAN,
- TRAINER_CLASS_CYCLING_TRIATHLETE_M,
- TRAINER_CLASS_CYCLING_TRIATHLETE_F,
- TRAINER_CLASS_RUNNING_TRIATHLETE_M,
- TRAINER_CLASS_RUNNING_TRIATHLETE_F,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
- TRAINER_CLASS_DRAGON_TAMER,
- TRAINER_CLASS_BIRD_KEEPER,
- TRAINER_CLASS_NINJA_BOY,
- TRAINER_CLASS_BATTLE_GIRL,
- TRAINER_CLASS_PARASOL_LADY,
- TRAINER_CLASS_SWIMMER_F,
- TRAINER_CLASS_PICNICKER,
- TRAINER_CLASS_TWINS,
- TRAINER_CLASS_SAILOR,
- TRAINER_CLASS_BOARDER_1,
- TRAINER_CLASS_BOARDER_2,
- TRAINER_CLASS_COLLECTOR,
- TRAINER_CLASS_WALLY,
- TRAINER_CLASS_BRENDAN_1,
- TRAINER_CLASS_BRENDAN_2,
- TRAINER_CLASS_BRENDAN_3,
- TRAINER_CLASS_MAY_1,
- TRAINER_CLASS_MAY_2,
- TRAINER_CLASS_MAY_3,
- TRAINER_CLASS_POKEMON_BREEDER_M,
- TRAINER_CLASS_POKEMON_BREEDER_F,
- TRAINER_CLASS_POKEMON_RANGER_M,
- TRAINER_CLASS_POKEMON_RANGER_F,
- TRAINER_CLASS_MAGMA_LEADER,
- TRAINER_CLASS_TEAM_MAGMA_M,
- TRAINER_CLASS_TEAM_MAGMA_F,
- TRAINER_CLASS_LASS,
- TRAINER_CLASS_BUG_CATCHER,
- TRAINER_CLASS_HIKER,
- TRAINER_CLASS_YOUNG_COUPLE,
- TRAINER_CLASS_OLD_COUPLE,
- TRAINER_CLASS_SIS_AND_BRO
+ FACILITY_CLASS_AQUA_LEADER,
+ FACILITY_CLASS_TEAM_AQUA_M,
+ FACILITY_CLASS_TEAM_AQUA_F,
+ FACILITY_CLASS_AROMA_LADY,
+ FACILITY_CLASS_RUIN_MANIAC,
+ FACILITY_CLASS_INTERVIEWER,
+ FACILITY_CLASS_TUBER_F,
+ FACILITY_CLASS_TUBER_M,
+ FACILITY_CLASS_COOL_TRAINER_M,
+ FACILITY_CLASS_COOL_TRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_LADY,
+ FACILITY_CLASS_BEAUTY,
+ FACILITY_CLASS_RICH_BOY,
+ FACILITY_CLASS_POKEMANIAC,
+ FACILITY_CLASS_SWIMMER_M,
+ FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_GUITARIST,
+ FACILITY_CLASS_KINDLER,
+ FACILITY_CLASS_CAMPER,
+ FACILITY_CLASS_BUG_MANIAC,
+ FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_GENTLEMAN,
+ FACILITY_CLASS_ELITE_FOUR_M,
+ FACILITY_CLASS_ELITE_FOUR_F,
+ FACILITY_CLASS_LEADER_F,
+ FACILITY_CLASS_LEADER_M,
+ FACILITY_CLASS_LEADER_MF,
+ FACILITY_CLASS_SCHOOL_KID_M,
+ FACILITY_CLASS_SCHOOL_KID_F,
+ FACILITY_CLASS_SR_AND_JR,
+ FACILITY_CLASS_POKEFAN_M,
+ FACILITY_CLASS_POKEFAN_F,
+ FACILITY_CLASS_EXPERT_M,
+ FACILITY_CLASS_EXPERT_F,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_CHAMPION,
+ FACILITY_CLASS_FISHERMAN,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_M,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_F,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
+ FACILITY_CLASS_DRAGON_TAMER,
+ FACILITY_CLASS_BIRD_KEEPER,
+ FACILITY_CLASS_NINJA_BOY,
+ FACILITY_CLASS_BATTLE_GIRL,
+ FACILITY_CLASS_PARASOL_LADY,
+ FACILITY_CLASS_SWIMMER_F,
+ FACILITY_CLASS_PICNICKER,
+ FACILITY_CLASS_TWINS,
+ FACILITY_CLASS_SAILOR,
+ FACILITY_CLASS_BOARDER_1,
+ FACILITY_CLASS_BOARDER_2,
+ FACILITY_CLASS_COLLECTOR,
+ FACILITY_CLASS_WALLY,
+ FACILITY_CLASS_BRENDAN_1,
+ FACILITY_CLASS_BRENDAN_2,
+ FACILITY_CLASS_BRENDAN_3,
+ FACILITY_CLASS_MAY_1,
+ FACILITY_CLASS_MAY_2,
+ FACILITY_CLASS_MAY_3,
+ FACILITY_CLASS_POKEMON_BREEDER_M,
+ FACILITY_CLASS_POKEMON_BREEDER_F,
+ FACILITY_CLASS_POKEMON_RANGER_M,
+ FACILITY_CLASS_POKEMON_RANGER_F,
+ FACILITY_CLASS_MAGMA_LEADER,
+ FACILITY_CLASS_TEAM_MAGMA_M,
+ FACILITY_CLASS_TEAM_MAGMA_F,
+ FACILITY_CLASS_LASS,
+ FACILITY_CLASS_BUG_CATCHER,
+ FACILITY_CLASS_HIKER,
+ FACILITY_CLASS_YOUNG_COUPLE,
+ FACILITY_CLASS_OLD_COUPLE,
+ FACILITY_CLASS_SIS_AND_BRO
};
enum {
@@ -183,64 +183,64 @@ enum {
};
enum {
- TRAINER_CLASS_NAME_POKEMON_TRAINER_1,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_2,
- TRAINER_CLASS_NAME_AQUA_LEADER,
- TRAINER_CLASS_NAME_TEAM_AQUA,
- TRAINER_CLASS_NAME_AQUA_ADMIN,
- TRAINER_CLASS_NAME_AROMA_LADY,
- TRAINER_CLASS_NAME_RUIN_MANIAC,
- TRAINER_CLASS_NAME_INTERVIEWER,
- TRAINER_CLASS_NAME_TUBER_F,
- TRAINER_CLASS_NAME_TUBER_M,
- TRAINER_CLASS_NAME_COOL_TRAINER,
- TRAINER_CLASS_NAME_HEX_MANIAC,
- TRAINER_CLASS_NAME_LADY,
- TRAINER_CLASS_NAME_BEAUTY,
- TRAINER_CLASS_NAME_RICH_BOY,
- TRAINER_CLASS_NAME_POKEMANIAC,
- TRAINER_CLASS_NAME_SWIMMER_M,
- TRAINER_CLASS_NAME_BLACK_BELT,
- TRAINER_CLASS_NAME_GUITARIST,
- TRAINER_CLASS_NAME_KINDLER,
- TRAINER_CLASS_NAME_CAMPER,
- TRAINER_CLASS_NAME_BUG_MANIAC,
- TRAINER_CLASS_NAME_PSYCHIC,
- TRAINER_CLASS_NAME_GENTLEMAN,
- TRAINER_CLASS_NAME_ELITE_FOUR,
- TRAINER_CLASS_NAME_LEADER,
- TRAINER_CLASS_NAME_SCHOOL_KID,
- TRAINER_CLASS_NAME_SR_AND_JR,
- TRAINER_CLASS_NAME_WINSTRATE,
- TRAINER_CLASS_NAME_POKEFAN,
- TRAINER_CLASS_NAME_EXPERT,
- TRAINER_CLASS_NAME_YOUNGSTER,
- TRAINER_CLASS_NAME_CHAMPION,
- TRAINER_CLASS_NAME_FISHERMAN,
- TRAINER_CLASS_NAME_TRIATHLETE,
- TRAINER_CLASS_NAME_DRAGON_TAMER,
- TRAINER_CLASS_NAME_BIRD_KEEPER,
- TRAINER_CLASS_NAME_NINJA_BOY,
- TRAINER_CLASS_NAME_BATTLE_GIRL,
- TRAINER_CLASS_NAME_PARASOL_LADY,
- TRAINER_CLASS_NAME_SWIMMER_F,
- TRAINER_CLASS_NAME_PICNICKER,
- TRAINER_CLASS_NAME_TWINS,
- TRAINER_CLASS_NAME_SAILOR,
- TRAINER_CLASS_NAME_BOARDER,
- TRAINER_CLASS_NAME_COLLECTOR,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3,
- TRAINER_CLASS_NAME_POKEMON_BREEDER,
- TRAINER_CLASS_NAME_POKEMON_RANGER,
- TRAINER_CLASS_NAME_MAGMA_LEADER,
- TRAINER_CLASS_NAME_TEAM_MAGMA,
- TRAINER_CLASS_NAME_MAGMA_ADMIN,
- TRAINER_CLASS_NAME_LASS,
- TRAINER_CLASS_NAME_BUG_CATCHER,
- TRAINER_CLASS_NAME_HIKER,
- TRAINER_CLASS_NAME_YOUNG_COUPLE,
- TRAINER_CLASS_NAME_OLD_COUPLE,
- TRAINER_CLASS_NAME_SIS_AND_BRO
+ TRAINER_CLASS_POKEMON_TRAINER_1,
+ TRAINER_CLASS_POKEMON_TRAINER_2,
+ TRAINER_CLASS_AQUA_LEADER,
+ TRAINER_CLASS_TEAM_AQUA,
+ TRAINER_CLASS_AQUA_ADMIN,
+ TRAINER_CLASS_AROMA_LADY,
+ TRAINER_CLASS_RUIN_MANIAC,
+ TRAINER_CLASS_INTERVIEWER,
+ TRAINER_CLASS_TUBER_F,
+ TRAINER_CLASS_TUBER_M,
+ TRAINER_CLASS_COOL_TRAINER,
+ TRAINER_CLASS_HEX_MANIAC,
+ TRAINER_CLASS_LADY,
+ TRAINER_CLASS_BEAUTY,
+ TRAINER_CLASS_RICH_BOY,
+ TRAINER_CLASS_POKEMANIAC,
+ TRAINER_CLASS_SWIMMER_M,
+ TRAINER_CLASS_BLACK_BELT,
+ TRAINER_CLASS_GUITARIST,
+ TRAINER_CLASS_KINDLER,
+ TRAINER_CLASS_CAMPER,
+ TRAINER_CLASS_BUG_MANIAC,
+ TRAINER_CLASS_PSYCHIC,
+ TRAINER_CLASS_GENTLEMAN,
+ TRAINER_CLASS_ELITE_FOUR,
+ TRAINER_CLASS_LEADER,
+ TRAINER_CLASS_SCHOOL_KID,
+ TRAINER_CLASS_SR_AND_JR,
+ TRAINER_CLASS_WINSTRATE,
+ TRAINER_CLASS_POKEFAN,
+ TRAINER_CLASS_EXPERT,
+ TRAINER_CLASS_YOUNGSTER,
+ TRAINER_CLASS_CHAMPION,
+ TRAINER_CLASS_FISHERMAN,
+ TRAINER_CLASS_TRIATHLETE,
+ TRAINER_CLASS_DRAGON_TAMER,
+ TRAINER_CLASS_BIRD_KEEPER,
+ TRAINER_CLASS_NINJA_BOY,
+ TRAINER_CLASS_BATTLE_GIRL,
+ TRAINER_CLASS_PARASOL_LADY,
+ TRAINER_CLASS_SWIMMER_F,
+ TRAINER_CLASS_PICNICKER,
+ TRAINER_CLASS_TWINS,
+ TRAINER_CLASS_SAILOR,
+ TRAINER_CLASS_BOARDER,
+ TRAINER_CLASS_COLLECTOR,
+ TRAINER_CLASS_POKEMON_TRAINER_3,
+ TRAINER_CLASS_POKEMON_BREEDER,
+ TRAINER_CLASS_POKEMON_RANGER,
+ TRAINER_CLASS_MAGMA_LEADER,
+ TRAINER_CLASS_TEAM_MAGMA,
+ TRAINER_CLASS_MAGMA_ADMIN,
+ TRAINER_CLASS_LASS,
+ TRAINER_CLASS_BUG_CATCHER,
+ TRAINER_CLASS_HIKER,
+ TRAINER_CLASS_YOUNG_COUPLE,
+ TRAINER_CLASS_OLD_COUPLE,
+ TRAINER_CLASS_SIS_AND_BRO
};
#endif // GUARD_TRAINER_H