diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle_setup.h | 87 | ||||
-rw-r--r-- | include/battle_transition.h | 21 | ||||
-rwxr-xr-x | include/event_scripts.h | 8 | ||||
-rwxr-xr-x | include/field_map_obj.h | 2 | ||||
-rw-r--r-- | include/flags.h | 5 | ||||
-rw-r--r-- | include/pokemon.h | 1 | ||||
-rw-r--r-- | include/pokemon_3.h | 1 | ||||
-rw-r--r-- | include/secret_base.h | 1 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | include/trainer.h | 19 | ||||
-rw-r--r-- | include/trainer_see.h | 15 |
11 files changed, 148 insertions, 13 deletions
diff --git a/include/battle_setup.h b/include/battle_setup.h index 0168022cc..e4bae6fdb 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -1,18 +1,85 @@ #ifndef GUARD_BATTLE_SETUP_H #define GUARD_BATTLE_SETUP_H -void BattleSetup_StartScriptedWildBattle(void); -u8 BattleSetup_GetTerrainId(void); -u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); -void BattleSetup_StartBattlePikeWildBattle(void); +enum +{ + TRAINER_BATTLE_NORMAL, + TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, + TRAINER_BATTLE_CONTINUE_SCRIPT, + TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT, + TRAINER_BATTLE_DOUBLE, + TRAINER_BATTLE_REMATCH, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, + TRAINER_BATTLE_REMATCH_DOUBLE, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, + TRAINER_BATTLE_9, + TRAINER_BATTLE_SET_TRAINER_A, + TRAINER_BATTLE_SET_TRAINER_B, + TRAINER_BATTLE_12, +}; + +#define REMATCHES_COUNT 5 +#define REMATCH_TABLE_ENTRIES 78 +#define REMATCH_WALLY_ENTRY 64 +#define REMATCH_ELITE_FOUR_ENTRIES 73 + +struct RematchTrainer +{ + u16 trainerIds[REMATCHES_COUNT]; + u16 mapGroup; + u16 mapNum; +}; + +extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES]; + +extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern u16 gPartnerTrainerId; + void BattleSetup_StartWildBattle(void); +void BattleSetup_StartBattlePikeWildBattle(void); void BattleSetup_StartRoamerBattle(void); - -u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void StartWallyTutorialBattle(void); +void BattleSetup_StartScriptedWildBattle(void); +void BattleSetup_StartLatiBattle(void); +void BattleSetup_StartLegendaryBattle(void); +void StartGroudonKyogreBattle(void); +void StartRegiBattle(void); +u8 BattleSetup_GetTerrainId(void); +u8 sub_80B100C(s32 arg0); +void ChooseStarter(void); +void ResetTrainerOpponentIds(void); +void SetMapVarsToTrainer(void); +const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); +void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript); +void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript); +void SetUpTwoTrainersBattle(void); +bool32 GetTrainerFlagFromScriptPointer(const u8 *data); +void sub_80B16D8(void); +u8 GetTrainerBattleMode(void); +bool8 GetTrainerFlag(void); +bool8 HasTrainerBeenFought(u16 trainerId); +void SetTrainerFlag(u16 trainerId); +void ClearTrainerFlag(u16 trainerId); void BattleSetup_StartTrainerBattle(void); -u8 *BattleSetup_GetScriptAddrAfterBattle(void); -u8 *BattleSetup_GetTrainerPostBattleScript(void); +void BattleSetup_StartRematchBattle(void); +void ShowTrainerIntroSpeech(void); +const u8 *BattleSetup_GetScriptAddrAfterBattle(void); +const u8 *BattleSetup_GetTrainerPostBattleScript(void); +void ShowTrainerCantBattleSpeech(void); +void SetUpTrainerEncounterMusic(void); +const u8 *GetTrainerALoseText(void); +const u8 *GetTrainerBLoseText(void); +const u8 *GetTrainerWonSpeech(void); +void UpdateRematchIfDefeated(s32 rematchTableId); +void IncrementRematchStepCounter(void); +void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum); +bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum); +bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum); +u16 GetLastBeatenRematchTrainerId(u16 trainerId); +bool8 ShouldTryRematchBattle(void); +bool8 IsTrainerReadyForRematch(void); +void ShouldTryGetTrainerScript(void); +u16 CountBattledRematchTeams(u16 trainerId); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index 26b836c66..b160f3e02 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -14,7 +14,7 @@ enum // TRANSITION_MUGSHOT MUGSHOT_PHOEBE, MUGSHOT_GLACIA, MUGSHOT_DRAKE, - MUGSHOT_STEVEN, + MUGSHOT_CHAMPION, }; #define MUGSHOTS_NO 5 @@ -38,7 +38,7 @@ enum // TRANSITION_MUGSHOT #define B_TRANSITION_PHOEBE 13 #define B_TRANSITION_GLACIA 14 #define B_TRANSITION_DRAKE 15 -#define B_TRANSITION_STEVEN 16 +#define B_TRANSITION_CHAMPION 16 // added in Emerald #define B_TRANSITION_AQUA 17 #define B_TRANSITION_MAGMA 18 @@ -48,5 +48,22 @@ enum // TRANSITION_MUGSHOT #define B_TRANSITION_KYORGE 22 #define B_TRANSITION_GROUDON 23 #define B_TRANSITION_RAYQUAZA 24 +#define B_TRANSITION_25 25 +#define B_TRANSITION_26 26 +#define B_TRANSITION_27 27 +#define B_TRANSITION_28 28 +#define B_TRANSITION_29 29 +#define B_TRANSITION_30 30 +#define B_TRANSITION_31 31 +#define B_TRANSITION_32 32 +#define B_TRANSITION_33 33 +#define B_TRANSITION_34 34 +#define B_TRANSITION_35 35 +#define B_TRANSITION_36 36 +#define B_TRANSITION_37 37 +#define B_TRANSITION_38 38 +#define B_TRANSITION_39 39 +#define B_TRANSITION_40 40 +#define B_TRANSITION_41 41 #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 844f1052a..a54e0e463 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -7,10 +7,18 @@ extern const u8 gUnknown_0823B4E8[]; extern const u8 gUnknown_0823B5E9[]; +extern const u8 EventScript_TestSignpostMsg[]; +extern const u8 EventScript_TryGetTrainerScript[]; extern const u8 EventScript_275BB7[]; extern const u8 EventScript_275D0C[]; extern const u8 EventScript_275D1F[]; extern const u8 EventScript_275D2E[]; +extern const u8 EventScript_271354[]; +extern const u8 EventScript_2713C2[]; +extern const u8 EventScript_TryDoDoubleTrainerBattle[]; +extern const u8 EventScript_271362[]; +extern const u8 EventScript_TryDoDoubleRematchBattle[]; +extern const u8 EventScript_2713D1[]; extern const u8 EventScript_2766A2[]; extern const u8 EventScript_2766A6[]; diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0107fa10f..696d1c2e2 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,6 +76,8 @@ void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z); +void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern); +u8 npc_running_behaviour_by_direction(u8 direction); // Exported data declarations diff --git a/include/flags.h b/include/flags.h index 31d634c59..cf5e67576 100644 --- a/include/flags.h +++ b/include/flags.h @@ -1,9 +1,12 @@ #ifndef GUARD_FLAGS_H #define GUARD_FLAGS_H -#define FLAG_340 0x340 #define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 #define FLAG_PENDING_DAYCARE_EGG 0x86 +#define FLAG_7E 0x7E +#define FLAG_HAS_MATCH_CALL 0x12F +#define FLAG_MATCH_CALL_REGISTERED 0x15C +#define FLAG_340 0x340 #define FLAG_TRAINER_FLAG_START 0x500 diff --git a/include/pokemon.h b/include/pokemon.h index 480c8d9b9..cdab96687 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -653,6 +653,7 @@ u8 GetSecretBaseTrainerPicIndex(void); bool8 TryIncrementMonLevel(struct Pokemon *mon); void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); +u8 GetMonsStateToDoubles_2(void); #include "sprite.h" diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 66ed0d9b2..82dfacf48 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -4,5 +4,6 @@ const u8* GetTrainerClassNameFromId(u16 trainerId); const u8* GetTrainerNameFromId(u16 trainerId); void PlayMapChosenOrBattleBGM(u16 song); +u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); #endif // GUARD_POKEMON_3_H diff --git a/include/secret_base.h b/include/secret_base.h index 630a36773..b2502889c 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -9,5 +9,6 @@ void sub_80E9578(void); void sub_80E980C(void); u8 *GetSecretBaseMapName(u8 *dest); +const u8 *GetSecretBaseTrainerLoseText(void); #endif //GUARD_SECRET_BASE_H diff --git a/include/strings.h b/include/strings.h index 08e2b4bba..1a46dd5a8 100644 --- a/include/strings.h +++ b/include/strings.h @@ -82,5 +82,6 @@ extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gUnknown_085EA79D[]; +extern const u8 gText_EmptyString2[]; #endif //GUARD_STRINGS_H diff --git a/include/trainer.h b/include/trainer.h new file mode 100644 index 000000000..232cde608 --- /dev/null +++ b/include/trainer.h @@ -0,0 +1,19 @@ +#ifndef GUARD_TRAINER_H +#define GUARD_TRAINER_H + +#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music +#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music +#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too +#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3 +#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4 +#define TRAINER_ENCOUNTER_MUSIC_COOL 5 +#define TRAINER_ENCOUNTER_MUSIC_AQUA 6 +#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7 +#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8 +#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10 +#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12 +#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen + +#endif // GUARD_TRAINER_H diff --git a/include/trainer_see.h b/include/trainer_see.h index ab035d9f8..5da50cfa1 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -1,6 +1,21 @@ #ifndef GUARD_TRAINER_SEE_H #define GUARD_TRAINER_SEE_H +struct ApproachingTrainer +{ + u8 mapObjectId; + u8 radius; + u8 field_2; + u8 field_3; + const u8 *trainerScriptPtr; + u8 field_8; + u8 field_9; + u8 field_A; + u8 field_B; +}; + +extern struct ApproachingTrainer gApproachingTrainers[]; + void sub_80B4578(struct MapObject *); u8 sub_80B47BC(void); void sub_8155D78(struct MapObject *); |