diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 9 | ||||
-rw-r--r-- | include/constants/battle_constants.h | 24 | ||||
-rwxr-xr-x | include/ewram.h | 2 | ||||
-rw-r--r-- | include/rom_8077ABC.h | 6 | ||||
-rw-r--r-- | include/trainer.h | 270 |
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 |