summaryrefslogtreecommitdiff
path: root/include/battle_tower.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/battle_tower.h')
-rw-r--r--include/battle_tower.h72
1 files changed, 46 insertions, 26 deletions
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 5879a73bb..5fe8d1190 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -3,35 +3,25 @@
struct RSBattleTowerRecord
{
- /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
- /*0x01*/ u8 trainerClass;
+ /*0x00*/ u8 lvlMode; // 0 = level 50, 1 = level 100
+ /*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
- /*0x10*/ struct {
- u16 easyChat[6];
- } greeting;
+ /*0x10*/ u16 greeting[6];
/*0x1C*/ struct UnknownPokemonStruct party[3];
/*0xA0*/ u32 checksum;
- /*0xA4*/ u16 unk_11c8;
};
-union BattleTowerRecord
-{
- struct RSBattleTowerRecord ruby_sapphire;
- struct EmeraldBattleTowerRecord emerald;
-};
-
-#define FRONTIER_TRAINER_NAME_LENGTH 7
-
struct BattleFrontierTrainer
{
- u32 facilityClass;
- u8 trainerName[FRONTIER_TRAINER_NAME_LENGTH + 1];
+ u8 facilityClass;
+ u8 filler1[3];
+ u8 trainerName[PLAYER_NAME_LENGTH + 1];
u16 speechBefore[6];
u16 speechWin[6];
u16 speechLose[6];
- const u16 *btMonPool;
+ const u16 *bfMonPool;
};
struct FacilityMon
@@ -43,17 +33,47 @@ struct FacilityMon
u8 nature;
};
+extern const u8 gTowerMaleFacilityClasses[30];
+extern const u8 gTowerMaleTrainerGfxIds[30];
+extern const u8 gTowerFemaleFacilityClasses[20];
+extern const u8 gTowerFemaleTrainerGfxIds[20];
+
extern const struct BattleFrontierTrainer *gFacilityTrainers;
extern const struct FacilityMon *gFacilityTrainerMons;
-u16 sub_8164FCC(u8, u8);
-void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
-bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
-void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
-void sub_81628A0(union BattleTowerRecord *);
-void sub_8162614(u16 trainerId, u8);
-void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
-void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
-void GetEreaderTrainerName(u8 *dest);
+void sub_8161F74(void);
+u16 sub_8162548(u8 challengeNum, u8 battleNum);
+void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId);
+void SetEReaderTrainerGfxId(void);
+u8 GetBattleFacilityTrainerGfxId(u16 trainerId);
+void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm);
+u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
+u8 GetFrontierOpponentClass(u16 trainerId);
+void GetFrontierTrainerName(u8 *dst, u16 trainerId);
+void FillFrontierTrainerParty(u8 monsCount);
+void FillFrontierTrainersParties(u8 monsCount);
+u16 RandomizeFacilityTrainerMonId(u16 trainerId);
+void FrontierSpeechToString(const u16 *words);
+void DoSpecialTrainerBattle(void);
+void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record);
+void CalcRubyBattleTowerChecksum(struct RSBattleTowerRecord *record);
+u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode);
+u8 GetEreaderTrainerFrontSpriteId(void);
+u8 GetEreaderTrainerClassId(void);
+void GetEreaderTrainerName(u8 *dst);
+void ValidateEReaderTrainer(void);
+void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer);
+void CopyEReaderTrainerGreeting(void);
+void sub_81653CC(void);
+bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst);
+bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst);
+void CalcApprenticeChecksum(struct Apprentice *apprentice);
+void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId);
+u8 SetFacilityPtrsGetLevel(void);
+u8 GetFrontierEnemyMonLevel(u8 lvlMode);
+s32 GetHighestLevelInPlayerParty(void);
+u8 sub_81660B8(u8 facilityClass);
+bool32 ValidateBattleTowerRecord(u8 recordId); // unused
+void sub_8166188(void);
#endif //GUARD_BATTLE_TOWER_H