diff options
Diffstat (limited to 'include/battle_tower.h')
-rw-r--r-- | include/battle_tower.h | 72 |
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 |