summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_dome.h9
-rw-r--r--include/battle_dome_cards.h13
-rw-r--r--include/battle_frontier_1.h8
-rw-r--r--include/battle_message.h1
-rw-r--r--include/battle_scripts.h2
-rw-r--r--include/battle_tower.h16
-rw-r--r--include/bg.h2
-rw-r--r--include/constants/battle_frontier.h10
-rw-r--r--include/constants/battle_script_commands.h2
-rw-r--r--include/constants/trainers.h5
-rw-r--r--include/constants/vars.h2
-rw-r--r--include/gba/io_reg.h2
-rw-r--r--include/global.h79
-rw-r--r--include/menu.h2
-rw-r--r--include/pokemon.h1
-rw-r--r--include/trainer_pokemon_sprites.h13
16 files changed, 117 insertions, 50 deletions
diff --git a/include/battle_dome.h b/include/battle_dome.h
new file mode 100644
index 000000000..d05b08689
--- /dev/null
+++ b/include/battle_dome.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_BATTLE_DOME_H
+#define GUARD_BATTLE_DOME_H
+
+extern u32 gUnknown_0203CD70;
+
+s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
+s32 TrainerIdToDomeTournamentId(u16 trainerId);
+
+#endif // GUARD_BATTLE_DOME_H
diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h
deleted file mode 100644
index a0696d156..000000000
--- a/include/battle_dome_cards.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef GUARD_BATTLE_DOME_CARDS_H
-#define GUARD_BATTLE_DOME_CARDS_H
-
-bool16 dp13_810BB8C(void);
-u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D820(u16 spriteId);
-u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D8F0(u16 spriteId);
-u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
-u8 sub_818D97C(u8 a0, u8 a1);
-
-#endif //GUARD_BATTLE_DOME_CARDS_H
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
deleted file mode 100644
index b9c633efc..000000000
--- a/include/battle_frontier_1.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef GUARD_BATTLE_FRONTIER_1_H
-#define GUARD_BATTLE_FRONTIER_1_H
-
-bool32 sub_8196094(void);
-void sub_8197080(u8 *);
-void sub_8196080(const u8 *str);
-
-#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_message.h b/include/battle_message.h
index 147bfa501..c68607246 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -224,6 +224,7 @@ extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[];
+extern const u8 *const gRoundsStringTable[];
extern const u8 gText_PkmnIsEvolving[];
extern const u8 gText_CongratsPkmnEvolved[];
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index ffd999660..1197dfb6e 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -256,7 +256,7 @@ extern const u8 BattleScript_82DB87D[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB887[];
extern const u8 BattleScript_82DB89D[];
-extern const u8 BattleScript_82DB8BE[];
+extern const u8 BattleScript_ArenaTurnBeginning[];
extern const u8 BattleScript_82DB8E0[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_82DB973[];
diff --git a/include/battle_tower.h b/include/battle_tower.h
index e1655f2c6..d7ff70006 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -24,7 +24,7 @@ union BattleTowerRecord
struct BattleFrontierTrainer
{
- u32 trainerClass;
+ u32 facilityClass;
u8 trainerName[8];
u16 speechBefore[6];
u16 speechWin[6];
@@ -32,7 +32,17 @@ struct BattleFrontierTrainer
u16 *btMonPool;
};
-extern struct BattleFrontierTrainer *gUnknown_0203BC88;
+struct FacilityMon
+{
+ u16 species;
+ u16 moves[4];
+ u8 itemTableId;
+ u8 evSpread;
+ u8 nature;
+};
+
+extern const struct BattleFrontierTrainer *gFacilityTrainers;
+extern const struct FacilityMon *gFacilityTrainerMons;
u16 sub_8164FCC(u8, u8);
void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
@@ -40,7 +50,7 @@ bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
void sub_81628A0(union BattleTowerRecord *);
void sub_8162614(u16 trainerId, u8);
-void ConvertBattleFrontierTrainerSpeechToString(u16 *words);
+void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
void GetEreaderTrainerName(u8 *dest);
diff --git a/include/bg.h b/include/bg.h
index ea84c1573..f2d4e7948 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -69,7 +69,7 @@ void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
-void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index 4145805c4..fddcdc8fe 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -10,4 +10,14 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
+// Battle Frontier lvl modes.
+#define FRONTIER_LVL_50 0
+#define FRONTIER_LVL_OPEN 1
+
+// Battle Frontier battle modes.
+#define FRONTIER_MODE_SINGLES 0
+#define FRONTIER_MODE_DOUBLES 1
+#define FRONTIER_MODE_MULTIS 2
+#define FRONTIER_MODE_LINK_MULTIS 3
+
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index 84ec9d512..bd9d8e67d 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -71,6 +71,8 @@
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
+#define VARIOUS_VOLUME_DOWN 21
+#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
diff --git a/include/constants/trainers.h b/include/constants/trainers.h
index 57c7fd523..f79216d94 100644
--- a/include/constants/trainers.h
+++ b/include/constants/trainers.h
@@ -5,6 +5,7 @@
// Special Trainer Ids.
#define TRAINER_FRONTIER_BRAIN 1022
+#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_OPPONENT_C00 3072
@@ -173,10 +174,10 @@
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
-#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
+#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
-#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
+#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
diff --git a/include/constants/vars.h b/include/constants/vars.h
index e2c59b4fb..9854ec5a2 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -222,7 +222,7 @@
#define VAR_0x40CB 0x40CB
#define VAR_0x40CC 0x40CC
#define VAR_0x40CD 0x40CD
-#define VAR_0x40CE 0x40CE
+#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_0x40D0 0x40D0
#define VAR_0x40D1 0x40D1
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 01d8c311e..9327d6cb0 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -550,12 +550,14 @@
#define WININ_WIN0_BG1 (1 << 1)
#define WININ_WIN0_BG2 (1 << 2)
#define WININ_WIN0_BG3 (1 << 3)
+#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
#define WININ_WIN1_BG3 (1 << 11)
+#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
diff --git a/include/global.h b/include/global.h
index 1a179d858..ab31e3c5d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -330,6 +330,29 @@ struct EmeraldBattleTowerRecord
/*0xE8*/ u32 checksum;
};
+struct FrontierMonData
+{
+ u16 moves[4];
+ u8 evs[6];
+ u8 nature;
+};
+
+struct Struct_field_E70
+{
+ u16 monId;
+ u8 unk2[9];
+};
+
+struct BattleDomeTrainer
+{
+ u16 trainerId:10;
+ u16 isEliminated:1;
+ u16 eliminatedAt:2;
+ u16 unk3:3;
+};
+
+#define DOME_TOURNAMENT_TRAINERS_COUNT 16
+
struct BattleFrontier
{
/*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
@@ -345,16 +368,18 @@ struct BattleFrontier
/*0xC14*/ u16 ecwords_C14[6];
/*0xC20*/ u8 filler_C20[0x88];
/*0xCA8*/ u8 field_CA8;
- /*0xCA9*/ u8 chosenLvl:2; // 0x1, 0x2 -> 0x3
+ /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a:1; // 0x4
/*0xCA9*/ u8 field_CA9_b:1; // 0x8
/*0xCA9*/ u8 field_CA9_c:1; // 0x10
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
- /*0xCAA*/ u16 field_CAA[4];
+ /*0xCAA*/ u16 field_CAA[3];
+ /*0xCB0*/ u16 field_CB0;
/*0xCB2*/ u16 field_CB2;
- /*0xCB4*/ u16 field_CB4[22];
+ /*0xCB4*/ u16 field_CB4[20];
+ /*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
@@ -362,21 +387,25 @@ struct BattleFrontier
/*0xCFC*/ u16 field_CFC[5];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
- /*0xD08*/ u8 filler_D08;
+ /*0xD08*/ u8 field_D08_0:1;
+ /*0xD08*/ u8 field_D08_1:1;
+ /*0xD08*/ u8 field_D08_2:1;
+ /*0xD08*/ u8 field_D08_3:1;
+ /*0xD08*/ u8 field_D08_4:1;
+ /*0xD08*/ u8 field_D08_5:1;
+ /*0xD08*/ u8 field_D08_6:1;
+ /*0xD08*/ u8 field_D08_7:1;
/*0xD09*/ u8 filler_D09;
- /*0xD0A*/ u8 filler_D0A;
- /*0xD0B*/ u8 filler_D0B;
- /*0xD0C*/ u16 field_D0C[2];
- /*0xD10*/ u8 filler_D10;
- /*0xD11*/ u8 filler_D11;
- /*0xD12*/ u8 filler_D12;
- /*0xD13*/ u8 filler_D13;
- /*0xD14*/ u16 field_D14[2];
- /*0xD18*/ u8 field_D18[0xB0];
- /*0xDC8*/ u16 field_DC8[2];
- /*0xDCC*/ u8 filler_DCC[4];
- /*0xDD0*/ u16 field_DD0[2];
- /*0xDD4*/ u16 field_DD4[2];
+ /*0xD0A*/ u8 field_D0A;
+ /*0xD0B*/ u8 field_D0B;
+ /*0xD0C*/ u16 field_D0C[2][2];
+ /*0xD14*/ u16 field_D14[2][2];
+ /*0xD1C*/ u16 field_D1C[2][2];
+ /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
+ /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
+ /*0xD64*/ u16 field_DC4[2];
+ /*0xDC8*/ u16 field_DC8[2][2];
+ /*0xDD0*/ u16 field_DD0[2][2];
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
@@ -404,12 +433,22 @@ struct BattleFrontier
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
- /*0xE70*/ u8 field_E70[72];
+ /*0xE70*/ struct Struct_field_E70 field_E70[6];
/*0xEB8*/ u16 frontierBattlePoints;
- /*0xEBA*/ u8 field_EBA[39];
+ /*0xEBA*/ u8 field_EBA;
+ /*0xEBB*/ u8 field_EBB;
+ /*0xEBC*/ u8 field_EBC;
+ /*0xEBD*/ u8 field_EBD;
+ /*0xEBE*/ u8 field_EBE;
+ /*0xEBF*/ u8 field_EBF;
+ /*0xEC0*/ u16 field_EC0[16];
+ /*0xEE0*/ u8 field_EE0;
/*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH];
/*0xEF1*/ u8 field_EF1[2][4];
- /*0xEF9*/ u8 field_EF9[51];
+ /*0xEF9*/ u8 field_EF9;
+ /*0xEFA*/ u8 field_EFA;
+ /*0xEFB*/ u8 field_EFB;
+ /*0xEFC*/ struct FrontierMonData field_EFC[3];
};
struct SaveBlock2
diff --git a/include/menu.h b/include/menu.h
index 054d8cb34..8ead4ea08 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -53,7 +53,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
-void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrap_(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
diff --git a/include/pokemon.h b/include/pokemon.h
index a60ad66be..09496b5c3 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -456,6 +456,7 @@ extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
+extern const s8 gNatureStatTable[][5];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h
new file mode 100644
index 000000000..90ceedaf5
--- /dev/null
+++ b/include/trainer_pokemon_sprites.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TRAINER_POKEMON_SPRITES_H
+#define GUARD_TRAINER_POKEMON_SPRITES_H
+
+bool16 ResetAllPicSprites(void);
+u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 FreeAndDestroyMonPicSprite(u16 spriteId);
+u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 FreeAndDestroyTrainerPicSprite(u16 spriteId);
+u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
+u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
+
+#endif // GUARD_TRAINER_POKEMON_SPRITES_H