battle setup file is decompiled

This commit is contained in:
DizzyEggg
2017-12-01 21:25:13 +01:00
parent e8ecb01ab2
commit 646664ff29
78 changed files with 1559 additions and 2555 deletions

View File

@@ -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);
void BattleSetup_StartWildBattle(void);
void BattleSetup_StartRoamerBattle(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,
};
u8 HasTrainerAlreadyBeenFought(u16);
void trainer_flag_set(u16);
void trainer_flag_clear(u16);
#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);
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

View File

@@ -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

View File

@@ -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[];

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

19
include/trainer.h Normal file
View File

@@ -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

View File

@@ -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 *);