summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-10-21 00:06:42 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-10-21 00:06:42 +0200
commit16026fe91d5628f138be434841ae764534946b2c (patch)
treebc647520019d0078e1fc68869107908c4af30a9e /include
parentf4e55999a5282dc1d2b94e0ca14081de6aae93ba (diff)
More battle tower.
Diffstat (limited to 'include')
-rw-r--r--include/battle_frontier_2.h1
-rw-r--r--include/battle_tower.h24
-rw-r--r--include/global.h32
3 files changed, 34 insertions, 23 deletions
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
index 573053f10..3bd605829 100644
--- a/include/battle_frontier_2.h
+++ b/include/battle_frontier_2.h
@@ -14,5 +14,6 @@ bool8 InBattlePike(void);
void sub_81AA078(u16*, u8);
void sub_81A4C30(void);
bool8 sub_81A6BF4(void);
+u8 sub_81A6CA8(u8, u8);
#endif // GUARD_BATTLE_FRONTIER_2_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 6af87210b..f79fbb8c4 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,9 +1,9 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
-#define BATTLE_TOWER_EREADER_TRAINER_ID 200
#define BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID 300
#define BATTLE_TOWER_RECORD_APPRENTICE_BASE_ID 400
+#define BATTLE_TOWER_EREADER_TRAINER_ID 500
struct RSBattleTowerRecord
{
@@ -12,9 +12,7 @@ struct RSBattleTowerRecord
/*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;
@@ -26,16 +24,15 @@ union BattleTowerRecord
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
@@ -47,6 +44,11 @@ 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;
@@ -54,8 +56,8 @@ u16 GetCurrentBattleTowerWinStreak(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 PutNewBattleTowerRecord(union BattleTowerRecord *);
+void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId);
void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
void GetEreaderTrainerName(u8 *dest);
diff --git a/include/global.h b/include/global.h
index 35e34e722..ef5a944d0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -326,19 +326,31 @@ struct UnknownPokemonStruct
struct EmeraldBattleTowerRecord
{
/*0x00*/ u8 lvlMode; // 0 = level 50, 1 = level 100
- /*0x01*/ u8 trainerClass;
+ /*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*/ u8 filler_1c[0x18];
/*0x34*/ struct UnknownPokemonStruct party[4];
/*0xE4*/ u8 language;
/*0xE8*/ u32 checksum;
};
+struct BattleTowerEReaderTrainer
+{
+ /*0x00*/ u8 unk0;
+ /*0x01*/ u8 facilityClass;
+ /*0x02*/ u16 winStreak;
+ /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
+ /*0x0C*/ u8 trainerId[4];
+ /*0x10*/ u16 greeting[6];
+ /*0x1C*/ u16 farewellPlayerLost[6];
+ /*0x28*/ u16 farewellPlayerWon[6];
+ /*0x34*/ struct UnknownPokemonStruct party[3];
+ /*0xB8*/ u32 checksum;
+};
+
struct FrontierMonData
{
u16 moves[4];
@@ -367,17 +379,13 @@ struct BattleDomeTrainer
struct BattleFrontier
{
/*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
- /*0x738*/ struct EmeraldBattleTowerRecord records[5]; // No idea here, it's probably wrong, no clue.
+ /*0x738*/ struct EmeraldBattleTowerRecord records[5]; // From record mixing.
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
/*0xBE3*/ u8 field_BE3[8];
/*0xBEB*/ u8 field_BEB;
- /*0xBEC*/ u8 filler_BEC[16];
- /*0xBFC*/ u16 ecwords_BFC[6];
- /*0xC08*/ u16 ecwords_C08[6];
- /*0xC14*/ u16 ecwords_C14[6];
- /*0xC20*/ u8 filler_C20[0x88];
+ /*0xBEC*/ struct BattleTowerEReaderTrainer ereaderTrainer;
/*0xCA8*/ u8 field_CA8;
/*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a:1; // 0x4
@@ -388,8 +396,8 @@ struct BattleFrontier
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
/*0xCAA*/ u16 field_CAA[3];
/*0xCB0*/ u16 field_CB0;
- /*0xCB2*/ u16 field_CB2;
- /*0xCB4*/ u16 field_CB4[20];
+ /*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
+ /*0xCB4*/ u16 battledTrainerIds[20];
/*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];