summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/alloc.h (renamed from include/malloc.h)6
-rw-r--r--include/battle.h7
-rw-r--r--include/battle_anim.h36
-rw-r--r--include/battle_controllers.h1
-rw-r--r--include/battle_interface.h2
-rw-r--r--include/battle_setup.h19
-rw-r--r--include/battle_tower.h7
-rw-r--r--include/constants/battle_frontier.h71
-rw-r--r--include/constants/battle_setup.h18
-rw-r--r--include/constants/battle_string_ids.h746
-rw-r--r--include/constants/pokemon.h2
-rw-r--r--include/constants/species.h2
-rw-r--r--include/constants/trainers.h186
-rw-r--r--include/constants/weather.h1
-rw-r--r--include/contest.h1
-rw-r--r--include/contest_painting.h13
-rwxr-xr-xinclude/contest_painting_effects.h28
-rw-r--r--include/event_object_movement.h25
-rw-r--r--include/event_scripts.h33
-rw-r--r--include/field_fadetransition.h12
-rw-r--r--include/field_screen.h24
-rw-r--r--include/field_screen_effect.h38
-rw-r--r--include/field_weather.h156
-rw-r--r--include/frontier_util.h2
-rw-r--r--include/gba/isagbprint.h18
-rw-r--r--include/gba/types.h4
-rw-r--r--include/global.fieldmap.h4
-rw-r--r--include/global.h24
-rw-r--r--include/graphics.h46
-rw-r--r--include/international_string_util.h29
-rw-r--r--include/item_menu.h39
-rw-r--r--include/librfu.h14
-rw-r--r--include/link_rfu.h36
-rw-r--r--include/main.h2
-rw-r--r--include/menu.h1
-rw-r--r--include/overworld.h9
-rw-r--r--include/pokedex.h34
-rwxr-xr-xinclude/pokedex_area_screen.h2
-rwxr-xr-xinclude/pokedex_cry_screen.h2
-rw-r--r--include/pokemon.h8
-rwxr-xr-xinclude/pokemon_summary_screen.h8
-rw-r--r--include/region_map.h14
-rwxr-xr-xinclude/roulette.h34
-rw-r--r--include/roulette_util.h39
-rw-r--r--include/save.h6
-rw-r--r--include/shop.h22
-rw-r--r--include/string_util.h1
-rw-r--r--include/strings.h581
-rw-r--r--include/text.h10
-rw-r--r--include/trainer_see.h2
-rwxr-xr-xinclude/unk_pokedex_area_screen_helper.h17
51 files changed, 1655 insertions, 787 deletions
diff --git a/include/malloc.h b/include/alloc.h
index c215f56c0..f2dcf6d46 100644
--- a/include/malloc.h
+++ b/include/alloc.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_MALLOC_H
-#define GUARD_MALLOC_H
+#ifndef GUARD_ALLOC_H
+#define GUARD_ALLOC_H
#define HEAP_SIZE 0x1C000
#define malloc Alloc
@@ -19,4 +19,4 @@ void *AllocZeroed(u32 size);
void Free(void *pointer);
void InitHeap(void *pointer, u32 size);
-#endif // GUARD_MALLOC_H
+#endif // GUARD_ALLOC_H
diff --git a/include/battle.h b/include/battle.h
index c4a0fe9a5..c06bdaad5 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -479,10 +479,10 @@ struct BattleStruct
u16 changedItems[MAX_BATTLERS_COUNT];
u8 intimidateBattler;
u8 switchInItemsCounter;
- u8 field_DA;
+ u8 arenaTurnCounter;
u8 turnSideTracker;
u8 fillerDC[0xDF-0xDC];
- u8 field_DF;
+ u8 givenExpMons; // Bits for enemy party's pokemon that gave exp to player's party.
u8 lastTakenMoveFrom[MAX_BATTLERS_COUNT * MAX_BATTLERS_COUNT * 2]; // a 3-D array [target][attacker][byte]
u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 field_180;
@@ -599,8 +599,7 @@ struct BattleAnimationInfo
u8 field_9_x80:1;
u8 field_A;
u8 field_B;
- u8 field_C;
- u8 field_D;
+ s16 field_C;
u8 field_E;
u8 field_F;
};
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 16e9de0ac..e0c1b2b08 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -3,16 +3,17 @@
#include "battle.h"
#include "constants/battle_anim.h"
+#include "task.h"
enum
{
BG_ANIM_SCREEN_SIZE,
BG_ANIM_AREA_OVERFLOW_MODE,
- BG_ANIM2,
+ BG_ANIM_MOSAIC,
BG_ANIM_CHAR_BASE_BLOCK,
BG_ANIM_PRIORITY,
- BG_ANIM_5,
- BG_ANIM_6
+ BG_ANIM_PALETTES_MODE,
+ BG_ANIM_SCREEN_BASE_BLOCK,
};
struct UnknownAnimStruct2
@@ -66,11 +67,11 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
void sub_80A4720(u16 a, u16 *b, u32 c, u8 d);
void sub_80A477C(bool8);
-// battle_anim_80FE840.s
+// battle_intro.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
-void sub_8118FBC(u8 arg0, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, void *arg5, u16 *arg6, u16 arg7);
+void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 arg7);
void HandleIntroSlide(u8 terrainId);
-u32 GetAnimBgAttribute(u8 bgId, u8 attributeId);
+int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_80A5C6C.s
void sub_80A6450(struct Sprite *sprite);
@@ -123,6 +124,20 @@ u8 sub_80A89C8(int, u8, int);
void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32);
void sub_80A6CC0(u32, const void*, u32);
void sub_80A6DAC(bool8);
+void sub_80A634C(struct Sprite *);
+void sub_80A653C(struct Sprite *);
+void sub_80A7E6C(u8 spriteId);
+void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
+u8 sub_80A80C8(struct Task *task);
+void sub_80A8EE4(struct Sprite *);
+void sub_80A67F4(struct Sprite *);
+void sub_80A6D48(u32 bgId, const void *src);
+void sub_80A7160(struct Sprite *sprite);
+bool8 sub_80A70E8(struct Sprite *sprite);
+void sub_80A70C0(struct Sprite *sprite);
+void TranslateMonBGUntil(struct Sprite *sprite);
+void TranslateSpriteOverDuration(struct Sprite *sprite);
+void sub_80A77C8(struct Sprite *sprite);
enum
{
@@ -160,13 +175,13 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
// battle_anim_8170478.s
u8 ItemIdToBallId(u16 itemId);
-u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
-u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
+u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
+u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, u8 ballId);
// battle_anim_utility_funcs.s
void sub_8116EB4(u8);
-u32 sub_811583C(s16);
+u32 UnpackSelectedBattleAnimPalettes(s16);
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
@@ -215,4 +230,7 @@ extern const struct OamData gUnknown_0852493C;
extern const struct OamData gUnknown_08524A5C;
extern const struct OamData gUnknown_08524A74;
+extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
+extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
+
#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index ff5a629af..9449f1986 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -175,6 +175,7 @@ enum
CONTROLLER_CMDS_COUNT
};
+extern struct UnusedControllerStruct gUnknown_02022D0C;
// general functions
void HandleLinkBattleSetup(void);
diff --git a/include/battle_interface.h b/include/battle_interface.h
index 66a7f9828..3145939d0 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
+#include "battle_controllers.h"
+
enum
{
HP_CURRENT,
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 0caa3df27..3b327e3f7 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,23 +1,6 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
-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,
-};
-
#define REMATCHES_COUNT 5
#define REMATCH_TABLE_ENTRIES 78
#define REMATCH_WALLY_ENTRY 64
@@ -55,7 +38,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc
void ConfigureTwoTrainersBattle(u8 trainerEventObjId, const u8 *trainerScript);
void SetUpTwoTrainersBattle(void);
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
-void sub_80B16D8(void);
+void SetUpTrainerMovement(void);
u8 GetTrainerBattleMode(void);
bool8 GetTrainerFlag(void);
bool8 HasTrainerBeenFought(u16 trainerId);
diff --git a/include/battle_tower.h b/include/battle_tower.h
index b6adcec0c..bd8e80fc1 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -9,7 +9,7 @@ struct RSBattleTowerRecord
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ u16 greeting[6];
- /*0x1C*/ struct UnknownPokemonStruct party[3];
+ /*0x1C*/ struct BattleTowerPokemon party[3];
/*0xA0*/ u32 checksum;
};
@@ -37,6 +37,11 @@ extern const u8 gTowerMaleFacilityClasses[30];
extern const u8 gTowerMaleTrainerGfxIds[30];
extern const u8 gTowerFemaleFacilityClasses[20];
extern const u8 gTowerFemaleTrainerGfxIds[20];
+extern const u16 gBattleFrontierHeldItems[];
+extern const struct FacilityMon gBattleFrontierMons[];
+extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
+extern const struct FacilityMon gSlateportBattleTentMons[];
+extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[];
extern u16 gUnknown_03006298[];
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index b5ad4f072..55b14b642 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -41,4 +41,75 @@
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7
+#define F_EV_SPREAD_HP (1 << 0)
+#define F_EV_SPREAD_ATTACK (1 << 1)
+#define F_EV_SPREAD_DEFENSE (1 << 2)
+#define F_EV_SPREAD_SPEED (1 << 3)
+#define F_EV_SPREAD_SP_ATTACK (1 << 4)
+#define F_EV_SPREAD_SP_DEFENSE (1 << 5)
+
+#define BATTLE_FRONTIER_ITEM_NONE 0
+#define BATTLE_FRONTIER_ITEM_KINGS_ROCK 1
+#define BATTLE_FRONTIER_ITEM_SITRUS_BERRY 2
+#define BATTLE_FRONTIER_ITEM_ORAN_BERRY 3
+#define BATTLE_FRONTIER_ITEM_CHESTO_BERRY 4
+#define BATTLE_FRONTIER_ITEM_HARD_STONE 5
+#define BATTLE_FRONTIER_ITEM_FOCUS_BAND 6
+#define BATTLE_FRONTIER_ITEM_PERSIM_BERRY 7
+#define BATTLE_FRONTIER_ITEM_MIRACLE_SEED 8
+#define BATTLE_FRONTIER_ITEM_BERRY_JUICE 9
+#define BATTLE_FRONTIER_ITEM_MACHO_BRACE 10
+#define BATTLE_FRONTIER_ITEM_SILVER_POWDER 11
+#define BATTLE_FRONTIER_ITEM_CHERI_BERRY 12
+#define BATTLE_FRONTIER_ITEM_BLACK_GLASSES 13
+#define BATTLE_FRONTIER_ITEM_BLACK_BELT 14
+#define BATTLE_FRONTIER_ITEM_SOUL_DEW 15
+#define BATTLE_FRONTIER_ITEM_CHOICE_BAND 16
+#define BATTLE_FRONTIER_ITEM_MAGNET 17
+#define BATTLE_FRONTIER_ITEM_SILK_SCARF 18
+#define BATTLE_FRONTIER_ITEM_WHITE_HERB 19
+#define BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE 20
+#define BATTLE_FRONTIER_ITEM_DEEP_SEA_TOOTH 21
+#define BATTLE_FRONTIER_ITEM_MYSTIC_WATER 22
+#define BATTLE_FRONTIER_ITEM_SHARP_BEAK 23
+#define BATTLE_FRONTIER_ITEM_QUICK_CLAW 24
+#define BATTLE_FRONTIER_ITEM_LEFTOVERS 25
+#define BATTLE_FRONTIER_ITEM_RAWST_BERRY 26
+#define BATTLE_FRONTIER_ITEM_LIGHT_BALL 27
+#define BATTLE_FRONTIER_ITEM_POISON_BARB 28
+#define BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE 29
+#define BATTLE_FRONTIER_ITEM_ASPEAR_BERRY 30
+#define BATTLE_FRONTIER_ITEM_SPELL_TAG 31
+#define BATTLE_FRONTIER_ITEM_BRIGHT_POWDER 32
+#define BATTLE_FRONTIER_ITEM_LEPPA_BERRY 33
+#define BATTLE_FRONTIER_ITEM_SCOPE_LENS 34
+#define BATTLE_FRONTIER_ITEM_TWISTED_SPOON 35
+#define BATTLE_FRONTIER_ITEM_METAL_COAT 36
+#define BATTLE_FRONTIER_ITEM_MENTAL_HERB 37
+#define BATTLE_FRONTIER_ITEM_CHARCOAL 38
+#define BATTLE_FRONTIER_ITEM_PECHA_BERRY 39
+#define BATTLE_FRONTIER_ITEM_SOFT_SAND 40
+#define BATTLE_FRONTIER_ITEM_LUM_BERRY 41
+#define BATTLE_FRONTIER_ITEM_DRAGON_SCALE 42
+#define BATTLE_FRONTIER_ITEM_DRAGON_FANG 43
+#define BATTLE_FRONTIER_ITEM_IAPAPA_BERRY 44
+#define BATTLE_FRONTIER_ITEM_WIKI_BERRY 45
+#define BATTLE_FRONTIER_ITEM_SEA_INCENSE 46
+#define BATTLE_FRONTIER_ITEM_SHELL_BELL 47
+#define BATTLE_FRONTIER_ITEM_SALAC_BERRY 48
+#define BATTLE_FRONTIER_ITEM_LANSAT_BERRY 49
+#define BATTLE_FRONTIER_ITEM_APICOT_BERRY 50
+#define BATTLE_FRONTIER_ITEM_STARF_BERRY 51
+#define BATTLE_FRONTIER_ITEM_LIECHI_BERRY 52
+#define BATTLE_FRONTIER_ITEM_STICK 53
+#define BATTLE_FRONTIER_ITEM_LAX_INCENSE 54
+#define BATTLE_FRONTIER_ITEM_AGUAV_BERRY 55
+#define BATTLE_FRONTIER_ITEM_FIGY_BERRY 56
+#define BATTLE_FRONTIER_ITEM_THICK_CLUB 57
+#define BATTLE_FRONTIER_ITEM_MAGO_BERRY 58
+#define BATTLE_FRONTIER_ITEM_METAL_POWDER 59
+#define BATTLE_FRONTIER_ITEM_PETAYA_BERRY 60
+#define BATTLE_FRONTIER_ITEM_LUCKY_PUNCH 61
+#define BATTLE_FRONTIER_ITEM_GANLON_BERRY 62
+
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
new file mode 100644
index 000000000..d98e1762f
--- /dev/null
+++ b/include/constants/battle_setup.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H
+#define GUARD_CONSTANTS_BATTLE_SETUP_H
+
+#define TRAINER_BATTLE_SINGLE 0
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1
+#define TRAINER_BATTLE_CONTINUE_SCRIPT 2
+#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3
+#define TRAINER_BATTLE_DOUBLE 4
+#define TRAINER_BATTLE_REMATCH 5
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
+#define TRAINER_BATTLE_REMATCH_DOUBLE 7
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
+#define TRAINER_BATTLE_PYRAMID 9
+#define TRAINER_BATTLE_SET_TRAINER_A 10
+#define TRAINER_BATTLE_SET_TRAINER_B 11
+#define TRAINER_BATTLE_12 12
+
+#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h
index db9ed59bd..9e0d8e0be 100644
--- a/include/constants/battle_string_ids.h
+++ b/include/constants/battle_string_ids.h
@@ -5,382 +5,382 @@
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
-#define STRINGID_INTROMSG 0
+#define STRINGID_INTROMSG 0
#define STRINGID_INTROSENDOUT 1
-#define STRINGID_RETURNMON 2
+#define STRINGID_RETURNMON 2
#define STRINGID_SWITCHINMON 3
-#define STRINGID_USEDMOVE 4
-#define STRINGID_BATTLEEND 5
+#define STRINGID_USEDMOVE 4
+#define STRINGID_BATTLEEND 5
// todo: make some of those names less vague: attacker/target vs pkmn, etc.
-#define STRINGID_TRAINER1LOSETEXT 12
-#define STRINGID_PKMNGAINEDEXP 13
-#define STRINGID_PKMNGREWTOLV 14
-#define STRINGID_PKMNLEARNEDMOVE 15
-#define STRINGID_TRYTOLEARNMOVE1 16
-#define STRINGID_TRYTOLEARNMOVE2 17
-#define STRINGID_TRYTOLEARNMOVE3 18
-#define STRINGID_PKMNFORGOTMOVE 19
-#define STRINGID_STOPLEARNINGMOVE 20
-#define STRINGID_DIDNOTLEARNMOVE 21
-#define STRINGID_PKMNLEARNEDMOVE2 22
-#define STRINGID_ATTACKMISSED 23
-#define STRINGID_PKMNPROTECTEDITSELF 24
-#define STRINGID_STATSWONTINCREASE2 25
-#define STRINGID_AVOIDEDDAMAGE 26
-#define STRINGID_ITDOESNTAFFECT 27
-#define STRINGID_ATTACKERFAINTED 28
-#define STRINGID_TARGETFAINTED 29
-#define STRINGID_PLAYERGOTMONEY 30
-#define STRINGID_PLAYERWHITEOUT 31
-#define STRINGID_PLAYERWHITEOUT2 32
-#define STRINGID_PREVENTSESCAPE 33
-#define STRINGID_HITXTIMES 34
-#define STRINGID_PKMNFELLASLEEP 35
-#define STRINGID_PKMNMADESLEEP 36
-#define STRINGID_PKMNALREADYASLEEP 37
-#define STRINGID_PKMNALREADYASLEEP2 38
-#define STRINGID_PKMNWASNTAFFECTED 39
-#define STRINGID_PKMNWASPOISONED 40
-#define STRINGID_PKMNPOISONEDBY 41
-#define STRINGID_PKMNHURTBYPOISON 42
-#define STRINGID_PKMNALREADYPOISONED 43
-#define STRINGID_PKMNBADLYPOISONED 44
-#define STRINGID_PKMNENERGYDRAINED 45
-#define STRINGID_PKMNWASBURNED 46
-#define STRINGID_PKMNBURNEDBY 47
-#define STRINGID_PKMNHURTBYBURN 48
-#define STRINGID_PKMNWASFROZEN 49
-#define STRINGID_PKMNFROZENBY 50
-#define STRINGID_PKMNISFROZEN 51
-#define STRINGID_PKMNWASDEFROSTED 52
-#define STRINGID_PKMNWASDEFROSTED2 53
-#define STRINGID_PKMNWASDEFROSTEDBY 54
-#define STRINGID_PKMNWASPARALYZED 55
-#define STRINGID_PKMNWASPARALYZEDBY 56
-#define STRINGID_PKMNISPARALYZED 57
-#define STRINGID_PKMNISALREADYPARALYZED 58
-#define STRINGID_PKMNHEALEDPARALYSIS 59
-#define STRINGID_PKMNDREAMEATEN 60
-#define STRINGID_STATSWONTINCREASE 61
-#define STRINGID_STATSWONTDECREASE 62
-#define STRINGID_TEAMSTOPPEDWORKING 63
-#define STRINGID_FOESTOPPEDWORKING 64
-#define STRINGID_PKMNISCONFUSED 65
-#define STRINGID_PKMNHEALEDCONFUSION 66
-#define STRINGID_PKMNWASCONFUSED 67
-#define STRINGID_PKMNALREADYCONFUSED 68
-#define STRINGID_PKMNFELLINLOVE 69
-#define STRINGID_PKMNINLOVE 70
-#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
-#define STRINGID_PKMNBLOWNAWAY 72
-#define STRINGID_PKMNCHANGEDTYPE 73
-#define STRINGID_PKMNFLINCHED 74
-#define STRINGID_PKMNREGAINEDHEALTH 75
-#define STRINGID_PKMNHPFULL 76
-#define STRINGID_PKMNRAISEDSPDEF 77
-#define STRINGID_PKMNRAISEDDEF 78
-#define STRINGID_PKMNCOVEREDBYVEIL 79
-#define STRINGID_PKMNUSEDSAFEGUARD 80
-#define STRINGID_PKMNSAFEGUARDEXPIRED 81
-#define STRINGID_PKMNWENTTOSLEEP 82
-#define STRINGID_PKMNSLEPTHEALTHY 83
-#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
-#define STRINGID_PKMNTOOKSUNLIGHT 85
-#define STRINGID_PKMNLOWEREDHEAD 86
-#define STRINGID_PKMNISGLOWING 87
-#define STRINGID_PKMNFLEWHIGH 88
-#define STRINGID_PKMNDUGHOLE 89
-#define STRINGID_PKMNSQUEEZEDBYBIND 90
-#define STRINGID_PKMNTRAPPEDINVORTEX 91
-#define STRINGID_PKMNWRAPPEDBY 92
-#define STRINGID_PKMNCLAMPED 93
-#define STRINGID_PKMNHURTBY 94
-#define STRINGID_PKMNFREEDFROM 95
-#define STRINGID_PKMNCRASHED 96
-#define STRINGID_PKMNSHROUDEDINMIST 97
-#define STRINGID_PKMNPROTECTEDBYMIST 98
-#define STRINGID_PKMNGETTINGPUMPED 99
-#define STRINGID_PKMNHITWITHRECOIL 100
-#define STRINGID_PKMNPROTECTEDITSELF2 101
-#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
-#define STRINGID_PKMNPELTEDBYHAIL 103
-#define STRINGID_PKMNSEEDED 104
-#define STRINGID_PKMNEVADEDATTACK 105
-#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
-#define STRINGID_PKMNFASTASLEEP 107
-#define STRINGID_PKMNWOKEUP 108
-#define STRINGID_PKMNUPROARKEPTAWAKE 109
-#define STRINGID_PKMNWOKEUPINUPROAR 110
-#define STRINGID_PKMNCAUSEDUPROAR 111
-#define STRINGID_PKMNMAKINGUPROAR 112
-#define STRINGID_PKMNCALMEDDOWN 113
-#define STRINGID_PKMNCANTSLEEPINUPROAR 114
-#define STRINGID_PKMNSTOCKPILED 115
-#define STRINGID_PKMNCANTSTOCKPILE 116
-#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
-#define STRINGID_UPROARKEPTPKMNAWAKE 118
-#define STRINGID_PKMNSTAYEDAWAKEUSING 119
-#define STRINGID_PKMNSTORINGENERGY 120
-#define STRINGID_PKMNUNLEASHEDENERGY 121
-#define STRINGID_PKMNFATIGUECONFUSION 122
-#define STRINGID_PKMNPICKEDUPITEM 123
-#define STRINGID_PKMNUNAFFECTED 124
-#define STRINGID_PKMNTRANSFORMEDINTO 125
-#define STRINGID_PKMNMADESUBSTITUTE 126
-#define STRINGID_PKMNHASSUBSTITUTE 127
-#define STRINGID_SUBSTITUTEDAMAGED 128
-#define STRINGID_PKMNSUBSTITUTEFADED 129
-#define STRINGID_PKMNMUSTRECHARGE 130
-#define STRINGID_PKMNRAGEBUILDING 131
-#define STRINGID_PKMNMOVEWASDISABLED 132
-#define STRINGID_PKMNMOVEISDISABLED 133
-#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
-#define STRINGID_PKMNGOTENCORE 135
-#define STRINGID_PKMNENCOREENDED 136
-#define STRINGID_PKMNTOOKAIM 137
-#define STRINGID_PKMNSKETCHEDMOVE 138
-#define STRINGID_PKMNTRYINGTOTAKEFOE 139
-#define STRINGID_PKMNTOOKFOE 140
-#define STRINGID_PKMNREDUCEDPP 141
-#define STRINGID_PKMNSTOLEITEM 142
-#define STRINGID_TARGETCANTESCAPENOW 143
-#define STRINGID_PKMNFELLINTONIGHTMARE 144
-#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
-#define STRINGID_PKMNLAIDCURSE 146
-#define STRINGID_PKMNAFFLICTEDBYCURSE 147
-#define STRINGID_SPIKESSCATTERED 148
-#define STRINGID_PKMNHURTBYSPIKES 149
-#define STRINGID_PKMNIDENTIFIED 150
-#define STRINGID_PKMNPERISHCOUNTFELL 151
-#define STRINGID_PKMNBRACEDITSELF 152
-#define STRINGID_PKMNENDUREDHIT 153
-#define STRINGID_MAGNITUDESTRENGTH 154
-#define STRINGID_PKMNCUTHPMAXEDATTACK 155
-#define STRINGID_PKMNCOPIEDSTATCHANGES 156
-#define STRINGID_PKMNGOTFREE 157
-#define STRINGID_PKMNSHEDLEECHSEED 158
-#define STRINGID_PKMNBLEWAWAYSPIKES 159
-#define STRINGID_PKMNFLEDFROMBATTLE 160
-#define STRINGID_PKMNFORESAWATTACK 161
-#define STRINGID_PKMNTOOKATTACK 162
-#define STRINGID_PKMNATTACK 163
-#define STRINGID_PKMNCENTERATTENTION 164
-#define STRINGID_PKMNCHARGINGPOWER 165
-#define STRINGID_NATUREPOWERTURNEDINTO 166
-#define STRINGID_PKMNSTATUSNORMAL 167
-#define STRINGID_PKMNHASNOMOVESLEFT 168
-#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
-#define STRINGID_PKMNCANTUSEMOVETORMENT 170
-#define STRINGID_PKMNTIGHTENINGFOCUS 171
-#define STRINGID_PKMNFELLFORTAUNT 172
-#define STRINGID_PKMNCANTUSEMOVETAUNT 173
-#define STRINGID_PKMNREADYTOHELP 174
-#define STRINGID_PKMNSWITCHEDITEMS 175
-#define STRINGID_PKMNCOPIEDFOE 176
-#define STRINGID_PKMNMADEWISH 177
-#define STRINGID_PKMNWISHCAMETRUE 178
-#define STRINGID_PKMNPLANTEDROOTS 179
-#define STRINGID_PKMNABSORBEDNUTRIENTS 180
-#define STRINGID_PKMNANCHOREDITSELF 181
-#define STRINGID_PKMNWASMADEDROWSY 182
-#define STRINGID_PKMNKNOCKEDOFF 183
-#define STRINGID_PKMNSWAPPEDABILITIES 184
-#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
-#define STRINGID_PKMNCANTUSEMOVESEALED 186
-#define STRINGID_PKMNWANTSGRUDGE 187
-#define STRINGID_PKMNLOSTPPGRUDGE 188
-#define STRINGID_PKMNSHROUDEDITSELF 189
-#define STRINGID_PKMNMOVEBOUNCED 190
-#define STRINGID_PKMNWAITSFORTARGET 191
-#define STRINGID_PKMNSNATCHEDMOVE 192
-#define STRINGID_PKMNMADEITRAIN 193
-#define STRINGID_PKMNRAISEDSPEED 194
-#define STRINGID_PKMNPROTECTEDBY 195
-#define STRINGID_PKMNPREVENTSUSAGE 196
-#define STRINGID_PKMNRESTOREDHPUSING 197
-#define STRINGID_PKMNCHANGEDTYPEWITH 198
-#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
-#define STRINGID_PKMNPREVENTSROMANCEWITH 200
-#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
-#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
-#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
-#define STRINGID_PKMNANCHORSITSELFWITH 204
-#define STRINGID_PKMNCUTSATTACKWITH 205
-#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
-#define STRINGID_PKMNHURTSWITH 207
-#define STRINGID_PKMNTRACED 208
-#define STRINGID_STATSHARPLY 209
-#define STRINGID_STATROSE 210
-#define STRINGID_STATHARSHLY 211
-#define STRINGID_STATFELL 212
-#define STRINGID_PKMNSSTATCHANGED 213
-#define STRINGID_PKMNSSTATCHANGED2 214
-#define STRINGID_PKMNSSTATCHANGED3 215
-#define STRINGID_PKMNSSTATCHANGED4 216
-#define STRINGID_CRITICALHIT 217
-#define STRINGID_ONEHITKO 218
-#define STRINGID_123POOF 219
-#define STRINGID_ANDELLIPSIS 220
-#define STRINGID_NOTVERYEFFECTIVE 221
-#define STRINGID_SUPEREFFECTIVE 222
-#define STRINGID_GOTAWAYSAFELY 223
-#define STRINGID_WILDPKMNFLED 224
-#define STRINGID_NORUNNINGFROMTRAINERS 225
-#define STRINGID_CANTESCAPE 226
-#define STRINGID_DONTLEAVEBIRCH 227
-#define STRINGID_BUTNOTHINGHAPPENED 228
-#define STRINGID_BUTITFAILED 229
-#define STRINGID_ITHURTCONFUSION 230
-#define STRINGID_MIRRORMOVEFAILED 231
-#define STRINGID_STARTEDTORAIN 232
-#define STRINGID_DOWNPOURSTARTED 233
-#define STRINGID_RAINCONTINUES 234
-#define STRINGID_DOWNPOURCONTINUES 235
-#define STRINGID_RAINSTOPPED 236
-#define STRINGID_SANDSTORMBREWED 237
-#define STRINGID_SANDSTORMRAGES 238
-#define STRINGID_SANDSTORMSUBSIDED 239
-#define STRINGID_SUNLIGHTGOTBRIGHT 240
-#define STRINGID_SUNLIGHTSTRONG 241
-#define STRINGID_SUNLIGHTFADED 242
-#define STRINGID_STARTEDHAIL 243
-#define STRINGID_HAILCONTINUES 244
-#define STRINGID_HAILSTOPPED 245
-#define STRINGID_FAILEDTOSPITUP 246
-#define STRINGID_FAILEDTOSWALLOW 247
-#define STRINGID_WINDBECAMEHEATWAVE 248
-#define STRINGID_STATCHANGESGONE 249
-#define STRINGID_COINSSCATTERED 250
-#define STRINGID_TOOWEAKFORSUBSTITUTE 251
-#define STRINGID_SHAREDPAIN 252
-#define STRINGID_BELLCHIMED 253
-#define STRINGID_FAINTINTHREE 254
-#define STRINGID_NOPPLEFT 255
-#define STRINGID_BUTNOPPLEFT 256
-#define STRINGID_PLAYERUSEDITEM 257
-#define STRINGID_WALLYUSEDITEM 258
-#define STRINGID_TRAINERBLOCKEDBALL 259
-#define STRINGID_DONTBEATHIEF 260
-#define STRINGID_ITDODGEDBALL 261
-#define STRINGID_YOUMISSEDPKMN 262
-#define STRINGID_PKMNBROKEFREE 263
-#define STRINGID_ITAPPEAREDCAUGHT 264
-#define STRINGID_AARGHALMOSTHADIT 265
-#define STRINGID_SHOOTSOCLOSE 266
-#define STRINGID_GOTCHAPKMNCAUGHT 267
-#define STRINGID_GOTCHAPKMNCAUGHT2 268
-#define STRINGID_GIVENICKNAMECAPTURED 269
-#define STRINGID_PKMNSENTTOPC 270
-#define STRINGID_PKMNDATAADDEDTODEX 271
-#define STRINGID_ITISRAINING 272
-#define STRINGID_SANDSTORMISRAGING 273
-#define STRINGID_CANTESCAPE2 274
-#define STRINGID_PKMNIGNORESASLEEP 275
-#define STRINGID_PKMNIGNOREDORDERS 276
-#define STRINGID_PKMNBEGANTONAP 277
-#define STRINGID_PKMNLOAFING 278
-#define STRINGID_PKMNWONTOBEY 279
-#define STRINGID_PKMNTURNEDAWAY 280
-#define STRINGID_PKMNPRETENDNOTNOTICE 281
-#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
-#define STRINGID_CREPTCLOSER 283
-#define STRINGID_CANTGETCLOSER 284
-#define STRINGID_PKMNWATCHINGCAREFULLY 285
-#define STRINGID_PKMNCURIOUSABOUTX 286
-#define STRINGID_PKMNENTHRALLEDBYX 287
-#define STRINGID_PKMNIGNOREDX 288
-#define STRINGID_THREWPOKEBLOCKATPKMN 289
-#define STRINGID_OUTOFSAFARIBALLS 290
-#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
-#define STRINGID_PKMNSITEMCUREDPOISON 292
-#define STRINGID_PKMNSITEMHEALEDBURN 293
-#define STRINGID_PKMNSITEMDEFROSTEDIT 294
-#define STRINGID_PKMNSITEMWOKEIT 295
-#define STRINGID_PKMNSITEMSNAPPEDOUT 296
-#define STRINGID_PKMNSITEMCUREDPROBLEM 297
-#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
-#define STRINGID_PKMNSITEMRESTOREDPP 299
-#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
-#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
-#define STRINGID_ITEMALLOWSONLYYMOVE 302
-#define STRINGID_PKMNHUNGONWITHX 303
-#define STRINGID_EMPTYSTRING3 304
-#define STRINGID_PKMNSXPREVENTSBURNS 305
-#define STRINGID_PKMNSXBLOCKSY 306
-#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
-#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
-#define STRINGID_PKMNSXPREVENTSYLOSS 309
-#define STRINGID_PKMNSXINFATUATEDY 310
-#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
-#define STRINGID_PKMNSXCUREDYPROBLEM 312
-#define STRINGID_ITSUCKEDLIQUIDOOZE 313
-#define STRINGID_PKMNTRANSFORMED 314
-#define STRINGID_ELECTRICITYWEAKENED 315
-#define STRINGID_FIREWEAKENED 316
-#define STRINGID_PKMNHIDUNDERWATER 317
-#define STRINGID_PKMNSPRANGUP 318
-#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
-#define STRINGID_XFOUNDONEY 320
-#define STRINGID_PLAYERDEFEATEDTRAINER1 321
-#define STRINGID_SOOTHINGAROMA 322
-#define STRINGID_ITEMSCANTBEUSEDNOW 323
-#define STRINGID_FORXCOMMAYZ 324
-#define STRINGID_USINGXTHEYOFZN 325
-#define STRINGID_PKMNUSEDXTOGETPUMPED 326
-#define STRINGID_PKMNSXMADEYUSELESS 327
-#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
-#define STRINGID_EMPTYSTRING4 329
-#define STRINGID_ABOOSTED 330
-#define STRINGID_PKMNSXINTENSIFIEDSUN 331
-#define STRINGID_PKMNMAKESGROUNDMISS 332
-#define STRINGID_YOUTHROWABALLNOWRIGHT 333
-#define STRINGID_PKMNSXTOOKATTACK 334
-#define STRINGID_PKMNCHOSEXASDESTINY 335
-#define STRINGID_PKMNLOSTFOCUS 336
-#define STRINGID_USENEXTPKMN 337
-#define STRINGID_PKMNFLEDUSINGITS 338
-#define STRINGID_PKMNFLEDUSING 339
-#define STRINGID_PKMNWASDRAGGEDOUT 340
-#define STRINGID_PREVENTEDFROMWORKING 341
-#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
-#define STRINGID_TRAINER1USEDITEM 343
-#define STRINGID_BOXISFULL 344
-#define STRINGID_PKMNAVOIDEDATTACK 345
-#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
-#define STRINGID_PKMNSXPREVENTSFLINCHING 347
-#define STRINGID_PKMNALREADYHASBURN 348
-#define STRINGID_STATSWONTDECREASE2 349
-#define STRINGID_PKMNSXBLOCKSY2 350
-#define STRINGID_PKMNSXWOREOFF 351
-#define STRINGID_PKMNRAISEDDEFALITTLE 352
-#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
-#define STRINGID_THEWALLSHATTERED 354
-#define STRINGID_PKMNSXPREVENTSYSZ 355
-#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
-#define STRINGID_ATTACKERCANTESCAPE 357
-#define STRINGID_PKMNOBTAINEDX 358
-#define STRINGID_PKMNOBTAINEDX2 359
-#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
-#define STRINGID_BUTNOEFFECT 361
-#define STRINGID_PKMNSXHADNOEFFECTONY 362
-#define STRINGID_TWOENEMIESDEFEATED 363
-#define STRINGID_TRAINER2LOSETEXT 364
-#define STRINGID_PKMNINCAPABLEOFPOWER 365
-#define STRINGID_GLINTAPPEARSINEYE 366
-#define STRINGID_PKMNGETTINGINTOPOSITION 367
-#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
-#define STRINGID_PKMNEAGERFORMORE 369
-#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
-#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
-#define STRINGID_TIEDOPPONENTBYREFEREE 372
-#define STRINGID_QUESTIONFORFEITMATCH 373
-#define STRINGID_FORFEITEDMATCH 374
-#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
-#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
-#define STRINGID_PKMNBOXSOMEONESPCFULL 377
-#define STRINGID_PKMNBOXLANETTESPCFULL 378
-#define STRINGID_TRAINER1WINTEXT 379
-#define STRINGID_TRAINER2WINTEXT 380
+#define STRINGID_TRAINER1LOSETEXT 12
+#define STRINGID_PKMNGAINEDEXP 13
+#define STRINGID_PKMNGREWTOLV 14
+#define STRINGID_PKMNLEARNEDMOVE 15
+#define STRINGID_TRYTOLEARNMOVE1 16
+#define STRINGID_TRYTOLEARNMOVE2 17
+#define STRINGID_TRYTOLEARNMOVE3 18
+#define STRINGID_PKMNFORGOTMOVE 19
+#define STRINGID_STOPLEARNINGMOVE 20
+#define STRINGID_DIDNOTLEARNMOVE 21
+#define STRINGID_PKMNLEARNEDMOVE2 22
+#define STRINGID_ATTACKMISSED 23
+#define STRINGID_PKMNPROTECTEDITSELF 24
+#define STRINGID_STATSWONTINCREASE2 25
+#define STRINGID_AVOIDEDDAMAGE 26
+#define STRINGID_ITDOESNTAFFECT 27
+#define STRINGID_ATTACKERFAINTED 28
+#define STRINGID_TARGETFAINTED 29
+#define STRINGID_PLAYERGOTMONEY 30
+#define STRINGID_PLAYERWHITEOUT 31
+#define STRINGID_PLAYERWHITEOUT2 32
+#define STRINGID_PREVENTSESCAPE 33
+#define STRINGID_HITXTIMES 34
+#define STRINGID_PKMNFELLASLEEP 35
+#define STRINGID_PKMNMADESLEEP 36
+#define STRINGID_PKMNALREADYASLEEP 37
+#define STRINGID_PKMNALREADYASLEEP2 38
+#define STRINGID_PKMNWASNTAFFECTED 39
+#define STRINGID_PKMNWASPOISONED 40
+#define STRINGID_PKMNPOISONEDBY 41
+#define STRINGID_PKMNHURTBYPOISON 42
+#define STRINGID_PKMNALREADYPOISONED 43
+#define STRINGID_PKMNBADLYPOISONED 44
+#define STRINGID_PKMNENERGYDRAINED 45
+#define STRINGID_PKMNWASBURNED 46
+#define STRINGID_PKMNBURNEDBY 47
+#define STRINGID_PKMNHURTBYBURN 48
+#define STRINGID_PKMNWASFROZEN 49
+#define STRINGID_PKMNFROZENBY 50
+#define STRINGID_PKMNISFROZEN 51
+#define STRINGID_PKMNWASDEFROSTED 52
+#define STRINGID_PKMNWASDEFROSTED2 53
+#define STRINGID_PKMNWASDEFROSTEDBY 54
+#define STRINGID_PKMNWASPARALYZED 55
+#define STRINGID_PKMNWASPARALYZEDBY 56
+#define STRINGID_PKMNISPARALYZED 57
+#define STRINGID_PKMNISALREADYPARALYZED 58
+#define STRINGID_PKMNHEALEDPARALYSIS 59
+#define STRINGID_PKMNDREAMEATEN 60
+#define STRINGID_STATSWONTINCREASE 61
+#define STRINGID_STATSWONTDECREASE 62
+#define STRINGID_TEAMSTOPPEDWORKING 63
+#define STRINGID_FOESTOPPEDWORKING 64
+#define STRINGID_PKMNISCONFUSED 65
+#define STRINGID_PKMNHEALEDCONFUSION 66
+#define STRINGID_PKMNWASCONFUSED 67
+#define STRINGID_PKMNALREADYCONFUSED 68
+#define STRINGID_PKMNFELLINLOVE 69
+#define STRINGID_PKMNINLOVE 70
+#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
+#define STRINGID_PKMNBLOWNAWAY 72
+#define STRINGID_PKMNCHANGEDTYPE 73
+#define STRINGID_PKMNFLINCHED 74
+#define STRINGID_PKMNREGAINEDHEALTH 75
+#define STRINGID_PKMNHPFULL 76
+#define STRINGID_PKMNRAISEDSPDEF 77
+#define STRINGID_PKMNRAISEDDEF 78
+#define STRINGID_PKMNCOVEREDBYVEIL 79
+#define STRINGID_PKMNUSEDSAFEGUARD 80
+#define STRINGID_PKMNSAFEGUARDEXPIRED 81
+#define STRINGID_PKMNWENTTOSLEEP 82
+#define STRINGID_PKMNSLEPTHEALTHY 83
+#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
+#define STRINGID_PKMNTOOKSUNLIGHT 85
+#define STRINGID_PKMNLOWEREDHEAD 86
+#define STRINGID_PKMNISGLOWING 87
+#define STRINGID_PKMNFLEWHIGH 88
+#define STRINGID_PKMNDUGHOLE 89
+#define STRINGID_PKMNSQUEEZEDBYBIND 90
+#define STRINGID_PKMNTRAPPEDINVORTEX 91
+#define STRINGID_PKMNWRAPPEDBY 92
+#define STRINGID_PKMNCLAMPED 93
+#define STRINGID_PKMNHURTBY 94
+#define STRINGID_PKMNFREEDFROM 95
+#define STRINGID_PKMNCRASHED 96
+#define STRINGID_PKMNSHROUDEDINMIST 97
+#define STRINGID_PKMNPROTECTEDBYMIST 98
+#define STRINGID_PKMNGETTINGPUMPED 99
+#define STRINGID_PKMNHITWITHRECOIL 100
+#define STRINGID_PKMNPROTECTEDITSELF2 101
+#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
+#define STRINGID_PKMNPELTEDBYHAIL 103
+#define STRINGID_PKMNSEEDED 104
+#define STRINGID_PKMNEVADEDATTACK 105
+#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
+#define STRINGID_PKMNFASTASLEEP 107
+#define STRINGID_PKMNWOKEUP 108
+#define STRINGID_PKMNUPROARKEPTAWAKE 109
+#define STRINGID_PKMNWOKEUPINUPROAR 110
+#define STRINGID_PKMNCAUSEDUPROAR 111
+#define STRINGID_PKMNMAKINGUPROAR 112
+#define STRINGID_PKMNCALMEDDOWN 113
+#define STRINGID_PKMNCANTSLEEPINUPROAR 114
+#define STRINGID_PKMNSTOCKPILED 115
+#define STRINGID_PKMNCANTSTOCKPILE 116
+#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
+#define STRINGID_UPROARKEPTPKMNAWAKE 118
+#define STRINGID_PKMNSTAYEDAWAKEUSING 119
+#define STRINGID_PKMNSTORINGENERGY 120
+#define STRINGID_PKMNUNLEASHEDENERGY 121
+#define STRINGID_PKMNFATIGUECONFUSION 122
+#define STRINGID_PKMNPICKEDUPITEM 123
+#define STRINGID_PKMNUNAFFECTED 124
+#define STRINGID_PKMNTRANSFORMEDINTO 125
+#define STRINGID_PKMNMADESUBSTITUTE 126
+#define STRINGID_PKMNHASSUBSTITUTE 127
+#define STRINGID_SUBSTITUTEDAMAGED 128
+#define STRINGID_PKMNSUBSTITUTEFADED 129
+#define STRINGID_PKMNMUSTRECHARGE 130
+#define STRINGID_PKMNRAGEBUILDING 131
+#define STRINGID_PKMNMOVEWASDISABLED 132
+#define STRINGID_PKMNMOVEISDISABLED 133
+#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
+#define STRINGID_PKMNGOTENCORE 135
+#define STRINGID_PKMNENCOREENDED 136
+#define STRINGID_PKMNTOOKAIM 137
+#define STRINGID_PKMNSKETCHEDMOVE 138
+#define STRINGID_PKMNTRYINGTOTAKEFOE 139
+#define STRINGID_PKMNTOOKFOE 140
+#define STRINGID_PKMNREDUCEDPP 141
+#define STRINGID_PKMNSTOLEITEM 142
+#define STRINGID_TARGETCANTESCAPENOW 143
+#define STRINGID_PKMNFELLINTONIGHTMARE 144
+#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
+#define STRINGID_PKMNLAIDCURSE 146
+#define STRINGID_PKMNAFFLICTEDBYCURSE 147
+#define STRINGID_SPIKESSCATTERED 148
+#define STRINGID_PKMNHURTBYSPIKES 149
+#define STRINGID_PKMNIDENTIFIED 150
+#define STRINGID_PKMNPERISHCOUNTFELL 151
+#define STRINGID_PKMNBRACEDITSELF 152
+#define STRINGID_PKMNENDUREDHIT 153
+#define STRINGID_MAGNITUDESTRENGTH 154
+#define STRINGID_PKMNCUTHPMAXEDATTACK 155
+#define STRINGID_PKMNCOPIEDSTATCHANGES 156
+#define STRINGID_PKMNGOTFREE 157
+#define STRINGID_PKMNSHEDLEECHSEED 158
+#define STRINGID_PKMNBLEWAWAYSPIKES 159
+#define STRINGID_PKMNFLEDFROMBATTLE 160
+#define STRINGID_PKMNFORESAWATTACK 161
+#define STRINGID_PKMNTOOKATTACK 162
+#define STRINGID_PKMNATTACK 163
+#define STRINGID_PKMNCENTERATTENTION 164
+#define STRINGID_PKMNCHARGINGPOWER 165
+#define STRINGID_NATUREPOWERTURNEDINTO 166
+#define STRINGID_PKMNSTATUSNORMAL 167
+#define STRINGID_PKMNHASNOMOVESLEFT 168
+#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
+#define STRINGID_PKMNCANTUSEMOVETORMENT 170
+#define STRINGID_PKMNTIGHTENINGFOCUS 171
+#define STRINGID_PKMNFELLFORTAUNT 172
+#define STRINGID_PKMNCANTUSEMOVETAUNT 173
+#define STRINGID_PKMNREADYTOHELP 174
+#define STRINGID_PKMNSWITCHEDITEMS 175
+#define STRINGID_PKMNCOPIEDFOE 176
+#define STRINGID_PKMNMADEWISH 177
+#define STRINGID_PKMNWISHCAMETRUE 178
+#define STRINGID_PKMNPLANTEDROOTS 179
+#define STRINGID_PKMNABSORBEDNUTRIENTS 180
+#define STRINGID_PKMNANCHOREDITSELF 181
+#define STRINGID_PKMNWASMADEDROWSY 182
+#define STRINGID_PKMNKNOCKEDOFF 183
+#define STRINGID_PKMNSWAPPEDABILITIES 184
+#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
+#define STRINGID_PKMNCANTUSEMOVESEALED 186
+#define STRINGID_PKMNWANTSGRUDGE 187
+#define STRINGID_PKMNLOSTPPGRUDGE 188
+#define STRINGID_PKMNSHROUDEDITSELF 189
+#define STRINGID_PKMNMOVEBOUNCED 190
+#define STRINGID_PKMNWAITSFORTARGET 191
+#define STRINGID_PKMNSNATCHEDMOVE 192
+#define STRINGID_PKMNMADEITRAIN 193
+#define STRINGID_PKMNRAISEDSPEED 194
+#define STRINGID_PKMNPROTECTEDBY 195
+#define STRINGID_PKMNPREVENTSUSAGE 196
+#define STRINGID_PKMNRESTOREDHPUSING 197
+#define STRINGID_PKMNCHANGEDTYPEWITH 198
+#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
+#define STRINGID_PKMNPREVENTSROMANCEWITH 200
+#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
+#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
+#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
+#define STRINGID_PKMNANCHORSITSELFWITH 204
+#define STRINGID_PKMNCUTSATTACKWITH 205
+#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
+#define STRINGID_PKMNHURTSWITH 207
+#define STRINGID_PKMNTRACED 208
+#define STRINGID_STATSHARPLY 209
+#define STRINGID_STATROSE 210
+#define STRINGID_STATHARSHLY 211
+#define STRINGID_STATFELL 212
+#define STRINGID_PKMNSSTATCHANGED 213
+#define STRINGID_PKMNSSTATCHANGED2 214
+#define STRINGID_PKMNSSTATCHANGED3 215
+#define STRINGID_PKMNSSTATCHANGED4 216
+#define STRINGID_CRITICALHIT 217
+#define STRINGID_ONEHITKO 218
+#define STRINGID_123POOF 219
+#define STRINGID_ANDELLIPSIS 220
+#define STRINGID_NOTVERYEFFECTIVE 221
+#define STRINGID_SUPEREFFECTIVE 222
+#define STRINGID_GOTAWAYSAFELY 223
+#define STRINGID_WILDPKMNFLED 224
+#define STRINGID_NORUNNINGFROMTRAINERS 225
+#define STRINGID_CANTESCAPE 226
+#define STRINGID_DONTLEAVEBIRCH 227
+#define STRINGID_BUTNOTHINGHAPPENED 228
+#define STRINGID_BUTITFAILED 229
+#define STRINGID_ITHURTCONFUSION 230
+#define STRINGID_MIRRORMOVEFAILED 231
+#define STRINGID_STARTEDTORAIN 232
+#define STRINGID_DOWNPOURSTARTED 233
+#define STRINGID_RAINCONTINUES 234
+#define STRINGID_DOWNPOURCONTINUES 235
+#define STRINGID_RAINSTOPPED 236
+#define STRINGID_SANDSTORMBREWED 237
+#define STRINGID_SANDSTORMRAGES 238
+#define STRINGID_SANDSTORMSUBSIDED 239
+#define STRINGID_SUNLIGHTGOTBRIGHT 240
+#define STRINGID_SUNLIGHTSTRONG 241
+#define STRINGID_SUNLIGHTFADED 242
+#define STRINGID_STARTEDHAIL 243
+#define STRINGID_HAILCONTINUES 244
+#define STRINGID_HAILSTOPPED 245
+#define STRINGID_FAILEDTOSPITUP 246
+#define STRINGID_FAILEDTOSWALLOW 247
+#define STRINGID_WINDBECAMEHEATWAVE 248
+#define STRINGID_STATCHANGESGONE 249
+#define STRINGID_COINSSCATTERED 250
+#define STRINGID_TOOWEAKFORSUBSTITUTE 251
+#define STRINGID_SHAREDPAIN 252
+#define STRINGID_BELLCHIMED 253
+#define STRINGID_FAINTINTHREE 254
+#define STRINGID_NOPPLEFT 255
+#define STRINGID_BUTNOPPLEFT 256
+#define STRINGID_PLAYERUSEDITEM 257
+#define STRINGID_WALLYUSEDITEM 258
+#define STRINGID_TRAINERBLOCKEDBALL 259
+#define STRINGID_DONTBEATHIEF 260
+#define STRINGID_ITDODGEDBALL 261
+#define STRINGID_YOUMISSEDPKMN 262
+#define STRINGID_PKMNBROKEFREE 263
+#define STRINGID_ITAPPEAREDCAUGHT 264
+#define STRINGID_AARGHALMOSTHADIT 265
+#define STRINGID_SHOOTSOCLOSE 266
+#define STRINGID_GOTCHAPKMNCAUGHT 267
+#define STRINGID_GOTCHAPKMNCAUGHT2 268
+#define STRINGID_GIVENICKNAMECAPTURED 269
+#define STRINGID_PKMNSENTTOPC 270
+#define STRINGID_PKMNDATAADDEDTODEX 271
+#define STRINGID_ITISRAINING 272
+#define STRINGID_SANDSTORMISRAGING 273
+#define STRINGID_CANTESCAPE2 274
+#define STRINGID_PKMNIGNORESASLEEP 275
+#define STRINGID_PKMNIGNOREDORDERS 276
+#define STRINGID_PKMNBEGANTONAP 277
+#define STRINGID_PKMNLOAFING 278
+#define STRINGID_PKMNWONTOBEY 279
+#define STRINGID_PKMNTURNEDAWAY 280
+#define STRINGID_PKMNPRETENDNOTNOTICE 281
+#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
+#define STRINGID_CREPTCLOSER 283
+#define STRINGID_CANTGETCLOSER 284
+#define STRINGID_PKMNWATCHINGCAREFULLY 285
+#define STRINGID_PKMNCURIOUSABOUTX 286
+#define STRINGID_PKMNENTHRALLEDBYX 287
+#define STRINGID_PKMNIGNOREDX 288
+#define STRINGID_THREWPOKEBLOCKATPKMN 289
+#define STRINGID_OUTOFSAFARIBALLS 290
+#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
+#define STRINGID_PKMNSITEMCUREDPOISON 292
+#define STRINGID_PKMNSITEMHEALEDBURN 293
+#define STRINGID_PKMNSITEMDEFROSTEDIT 294
+#define STRINGID_PKMNSITEMWOKEIT 295
+#define STRINGID_PKMNSITEMSNAPPEDOUT 296
+#define STRINGID_PKMNSITEMCUREDPROBLEM 297
+#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
+#define STRINGID_PKMNSITEMRESTOREDPP 299
+#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
+#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
+#define STRINGID_ITEMALLOWSONLYYMOVE 302
+#define STRINGID_PKMNHUNGONWITHX 303
+#define STRINGID_EMPTYSTRING3 304
+#define STRINGID_PKMNSXPREVENTSBURNS 305
+#define STRINGID_PKMNSXBLOCKSY 306
+#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
+#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
+#define STRINGID_PKMNSXPREVENTSYLOSS 309
+#define STRINGID_PKMNSXINFATUATEDY 310
+#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
+#define STRINGID_PKMNSXCUREDYPROBLEM 312
+#define STRINGID_ITSUCKEDLIQUIDOOZE 313
+#define STRINGID_PKMNTRANSFORMED 314
+#define STRINGID_ELECTRICITYWEAKENED 315
+#define STRINGID_FIREWEAKENED 316
+#define STRINGID_PKMNHIDUNDERWATER 317
+#define STRINGID_PKMNSPRANGUP 318
+#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
+#define STRINGID_XFOUNDONEY 320
+#define STRINGID_PLAYERDEFEATEDTRAINER1 321
+#define STRINGID_SOOTHINGAROMA 322
+#define STRINGID_ITEMSCANTBEUSEDNOW 323
+#define STRINGID_FORXCOMMAYZ 324
+#define STRINGID_USINGXTHEYOFZN 325
+#define STRINGID_PKMNUSEDXTOGETPUMPED 326
+#define STRINGID_PKMNSXMADEYUSELESS 327
+#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
+#define STRINGID_EMPTYSTRING4 329
+#define STRINGID_ABOOSTED 330
+#define STRINGID_PKMNSXINTENSIFIEDSUN 331
+#define STRINGID_PKMNMAKESGROUNDMISS 332
+#define STRINGID_YOUTHROWABALLNOWRIGHT 333
+#define STRINGID_PKMNSXTOOKATTACK 334
+#define STRINGID_PKMNCHOSEXASDESTINY 335
+#define STRINGID_PKMNLOSTFOCUS 336
+#define STRINGID_USENEXTPKMN 337
+#define STRINGID_PKMNFLEDUSINGITS 338
+#define STRINGID_PKMNFLEDUSING 339
+#define STRINGID_PKMNWASDRAGGEDOUT 340
+#define STRINGID_PREVENTEDFROMWORKING 341
+#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
+#define STRINGID_TRAINER1USEDITEM 343
+#define STRINGID_BOXISFULL 344
+#define STRINGID_PKMNAVOIDEDATTACK 345
+#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
+#define STRINGID_PKMNSXPREVENTSFLINCHING 347
+#define STRINGID_PKMNALREADYHASBURN 348
+#define STRINGID_STATSWONTDECREASE2 349
+#define STRINGID_PKMNSXBLOCKSY2 350
+#define STRINGID_PKMNSXWOREOFF 351
+#define STRINGID_PKMNRAISEDDEFALITTLE 352
+#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
+#define STRINGID_THEWALLSHATTERED 354
+#define STRINGID_PKMNSXPREVENTSYSZ 355
+#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
+#define STRINGID_ATTACKERCANTESCAPE 357
+#define STRINGID_PKMNOBTAINEDX 358
+#define STRINGID_PKMNOBTAINEDX2 359
+#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
+#define STRINGID_BUTNOEFFECT 361
+#define STRINGID_PKMNSXHADNOEFFECTONY 362
+#define STRINGID_TWOENEMIESDEFEATED 363
+#define STRINGID_TRAINER2LOSETEXT 364
+#define STRINGID_PKMNINCAPABLEOFPOWER 365
+#define STRINGID_GLINTAPPEARSINEYE 366
+#define STRINGID_PKMNGETTINGINTOPOSITION 367
+#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
+#define STRINGID_PKMNEAGERFORMORE 369
+#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
+#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
+#define STRINGID_TIEDOPPONENTBYREFEREE 372
+#define STRINGID_QUESTIONFORFEITMATCH 373
+#define STRINGID_FORFEITEDMATCH 374
+#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
+#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
+#define STRINGID_PKMNBOXSOMEONESPCFULL 377
+#define STRINGID_PKMNBOXLANETTESPCFULL 378
+#define STRINGID_TRAINER1WINTEXT 379
+#define STRINGID_TRAINER2WINTEXT 380
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 1a4741574..f63d755ad 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -2,6 +2,7 @@
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
+#define TYPE_NONE 0xFF
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
@@ -22,6 +23,7 @@
#define TYPE_DARK 0x11
#define NUMBER_OF_MON_TYPES 0x12
+
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
diff --git a/include/constants/species.h b/include/constants/species.h
index cd9b13743..02e5ea396 100644
--- a/include/constants/species.h
+++ b/include/constants/species.h
@@ -449,6 +449,7 @@
// National Dex Index Defines
+#define NATIONAL_DEX_NONE 0
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
@@ -865,6 +866,7 @@
// Hoenn Dex Index Defines
+#define HOENN_DEX_NONE 0
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205
diff --git a/include/constants/trainers.h b/include/constants/trainers.h
index 2ea9f7c62..2a6c306b4 100644
--- a/include/constants/trainers.h
+++ b/include/constants/trainers.h
@@ -17,7 +17,7 @@
#define TRAINER_PIC_HIKER 0
#define TRAINER_PIC_AQUA_GRUNT_M 1
#define TRAINER_PIC_POKEMON_BREEDER_F 2
-#define TRAINER_PIC_COOL_TRAINER_M 3
+#define TRAINER_PIC_COOLTRAINER_M 3
#define TRAINER_PIC_BIRD_KEEPER 4
#define TRAINER_PIC_COLLECTOR 5
#define TRAINER_PIC_AQUA_GRUNT_F 6
@@ -34,7 +34,7 @@
#define TRAINER_PIC_INTERVIEWER 17
#define TRAINER_PIC_TUBER_F 18
#define TRAINER_PIC_TUBER_M 19
-#define TRAINER_PIC_COOL_TRAINER_F 20
+#define TRAINER_PIC_COOLTRAINER_F 20
#define TRAINER_PIC_LADY 21
#define TRAINER_PIC_BEAUTY 22
#define TRAINER_PIC_RICH_BOY 23
@@ -65,8 +65,8 @@
#define TRAINER_PIC_SCHOOL_KID_M 48
#define TRAINER_PIC_SCHOOL_KID_F 49
#define TRAINER_PIC_SR_AND_JR 50
-#define TRAINER_PIC_WINSTRATE_M 51
-#define TRAINER_PIC_WINSTRATE_F 52
+#define TRAINER_PIC_POKEFAN_M 51
+#define TRAINER_PIC_POKEFAN_F 52
#define TRAINER_PIC_YOUNGSTER 53
#define TRAINER_PIC_CHAMPION_WALLACE 54
#define TRAINER_PIC_FISHERMAN 55
@@ -105,8 +105,8 @@
#define TRAINER_PIC_PYRAMID_KING_BRANDON 88
#define TRAINER_PIC_RED 89
#define TRAINER_PIC_LEAF 90
-#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91
-#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92
+#define TRAINER_PIC_RS_BRENDAN 91
+#define TRAINER_PIC_RS_MAY 92
#define TRAINER_BACK_PIC_BRENDAN 0
#define TRAINER_BACK_PIC_MAY 1
@@ -117,95 +117,97 @@
#define TRAINER_BACK_PIC_WALLY 6
#define TRAINER_BACK_PIC_STEVEN 7
-#define FACILITY_CLASS_HIKER 0x0
-#define FACILITY_CLASS_TEAM_AQUA_1 0x1
-#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
-#define FACILITY_CLASS_COOLTRAINER_M 0x3
-#define FACILITY_CLASS_BIRD_KEEPER 0x4
-#define FACILITY_CLASS_COLLECTOR 0x5
-#define FACILITY_CLASS_TEAM_AQUA_2 0x6
-#define FACILITY_CLASS_SWIMMER_M 0x7
-#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
-#define FACILITY_CLASS_EXPERT_M 0x9
-#define FACILITY_CLASS_BLACK_BELT 0xa
-#define FACILITY_CLASS_AQUA_LEADER 0xb
-#define FACILITY_CLASS_HEX_MANIAC 0xc
-#define FACILITY_CLASS_AROMA_LADY 0xd
-#define FACILITY_CLASS_RUIN_MANIAC 0xe
-#define FACILITY_CLASS_INTERVIEWER 0xf
-#define FACILITY_CLASS_TUBER_1 0x10
-#define FACILITY_CLASS_TUBER_2 0x11
-#define FACILITY_CLASS_COOLTRAINER_F 0x12
-#define FACILITY_CLASS_LADY 0x13
-#define FACILITY_CLASS_BEAUTY 0x14
-#define FACILITY_CLASS_RICH_BOY 0x15
-#define FACILITY_CLASS_EXPERT_2 0x16
-#define FACILITY_CLASS_POKEMANIAC 0x17
-#define FACILITY_CLASS_TEAM_MAGMA_2 0x18
-#define FACILITY_CLASS_GUITARIST 0x19
-#define FACILITY_CLASS_KINDLER 0x1a
-#define FACILITY_CLASS_CAMPER 0x1b
-#define FACILITY_CLASS_PICNICKER 0x1c
-#define FACILITY_CLASS_BUG_MANIAC 0x1d
-#define FACILITY_CLASS_PSYCHIC_M 0x1e
-#define FACILITY_CLASS_PSYCHIC_F 0x1f
-#define FACILITY_CLASS_GENTLEMAN 0x20
-#define FACILITY_CLASS_ELITE_FOUR_1 0x21
-#define FACILITY_CLASS_ELITE_FOUR_2 0x22
-#define FACILITY_CLASS_LEADER_1 0x23
-#define FACILITY_CLASS_LEADER_2 0x24
-#define FACILITY_CLASS_LEADER_3 0x25
-#define FACILITY_CLASS_SCHOOL_KID_M 0x26
-#define FACILITY_CLASS_SCHOOL_KID_F 0x27
-#define FACILITY_CLASS_SR_AND_JR 0x28
-#define FACILITY_CLASS_POKEFAN_1 0x29
-#define FACILITY_CLASS_POKEFAN_2 0x2a
-#define FACILITY_CLASS_YOUNGSTER 0x2b
-#define FACILITY_CLASS_CHAMPION 0x2c
-#define FACILITY_CLASS_FISHERMAN 0x2d
-#define FACILITY_CLASS_TRIATHLETE_1 0x2e
-#define FACILITY_CLASS_TRIATHLETE_2 0x2f
-#define FACILITY_CLASS_TRIATHLETE_3 0x30
-#define FACILITY_CLASS_TRIATHLETE_4 0x31
-#define FACILITY_CLASS_TRIATHLETE_5 0x32
-#define FACILITY_CLASS_TRIATHLETE_6 0x33
-#define FACILITY_CLASS_DRAGON_TAMER 0x34
-#define FACILITY_CLASS_NINJA_BOY 0x35
-#define FACILITY_CLASS_BATTLE_GIRL 0x36
-#define FACILITY_CLASS_PARASOL_LADY 0x37
-#define FACILITY_CLASS_SWIMMER_F 0x38
-#define FACILITY_CLASS_TWINS 0x39
-#define FACILITY_CLASS_SAILOR 0x3a
-#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
-#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_MAY 0x3f
-#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
-#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
-#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
-#define FACILITY_CLASS_BUG_CATCHER 0x43
-#define FACILITY_CLASS_PKMN_RANGER_M 0x44
-#define FACILITY_CLASS_PKMN_RANGER_F 0x45
-#define FACILITY_CLASS_MAGMA_LEADER 0x46
-#define FACILITY_CLASS_LASS 0x47
-#define FACILITY_CLASS_YOUNG_COUPLE 0x48
-#define FACILITY_CLASS_OLD_COUPLE 0x49
-#define FACILITY_CLASS_SIS_AND_BRO 0x4a
-#define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b
-#define FACILITY_CLASS_SALON_MAIDEN 0x4c
-#define FACILITY_CLASS_DOME_ACE 0x4d
-#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
-#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
-#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
-#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
+#define FACILITY_CLASS_HIKER 0x0
+#define FACILITY_CLASS_AQUA_GRUNT_M 0x1
+#define FACILITY_CLASS_POKEMON_BREEDER_F 0x2
+#define FACILITY_CLASS_COOLTRAINER_M 0x3
+#define FACILITY_CLASS_BIRD_KEEPER 0x4
+#define FACILITY_CLASS_COLLECTOR 0x5
+#define FACILITY_CLASS_AQUA_GRUNT_F 0x6
+#define FACILITY_CLASS_SWIMMER_M 0x7
+#define FACILITY_CLASS_MAGMA_GRUNT_M 0x8
+#define FACILITY_CLASS_EXPERT_M 0x9
+#define FACILITY_CLASS_BLACK_BELT 0xa
+#define FACILITY_CLASS_AQUA_LEADER_ARCHIE 0xb
+#define FACILITY_CLASS_HEX_MANIAC 0xc
+#define FACILITY_CLASS_AROMA_LADY 0xd
+#define FACILITY_CLASS_RUIN_MANIAC 0xe
+#define FACILITY_CLASS_INTERVIEWER 0xf
+#define FACILITY_CLASS_TUBER_F 0x10
+#define FACILITY_CLASS_TUBER_M 0x11
+#define FACILITY_CLASS_COOLTRAINER_F 0x12
+#define FACILITY_CLASS_LADY 0x13
+#define FACILITY_CLASS_BEAUTY 0x14
+#define FACILITY_CLASS_RICH_BOY 0x15
+#define FACILITY_CLASS_EXPERT_F 0x16
+#define FACILITY_CLASS_POKEMANIAC 0x17
+#define FACILITY_CLASS_MAGMA_GRUNT_F 0x18
+#define FACILITY_CLASS_GUITARIST 0x19
+#define FACILITY_CLASS_KINDLER 0x1a
+#define FACILITY_CLASS_CAMPER 0x1b
+#define FACILITY_CLASS_PICNICKER 0x1c
+#define FACILITY_CLASS_BUG_MANIAC 0x1d
+#define FACILITY_CLASS_PSYCHIC_M 0x1e
+#define FACILITY_CLASS_PSYCHIC_F 0x1f
+#define FACILITY_CLASS_GENTLEMAN 0x20
+#define FACILITY_CLASS_ELITE_FOUR_SIDNEY 0x21
+#define FACILITY_CLASS_ELITE_FOUR_PHOEBE 0x22
+#define FACILITY_CLASS_LEADER_ROXANNE 0x23
+#define FACILITY_CLASS_LEADER_BRAWLY 0x24
+#define FACILITY_CLASS_LEADER_TATE_AND_LIZA 0x25
+#define FACILITY_CLASS_SCHOOL_KID_M 0x26
+#define FACILITY_CLASS_SCHOOL_KID_F 0x27
+#define FACILITY_CLASS_SR_AND_JR 0x28
+#define FACILITY_CLASS_POKEFAN_M 0x29
+#define FACILITY_CLASS_POKEFAN_F 0x2a
+#define FACILITY_CLASS_YOUNGSTER 0x2b
+#define FACILITY_CLASS_CHAMPION_WALLACE 0x2c
+#define FACILITY_CLASS_FISHERMAN 0x2d
+#define FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x2e
+#define FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x2f
+#define FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x30
+#define FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x31
+#define FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x32
+#define FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x33
+#define FACILITY_CLASS_DRAGON_TAMER 0x34
+#define FACILITY_CLASS_NINJA_BOY 0x35
+#define FACILITY_CLASS_BATTLE_GIRL 0x36
+#define FACILITY_CLASS_PARASOL_LADY 0x37
+#define FACILITY_CLASS_SWIMMER_F 0x38
+#define FACILITY_CLASS_TWINS 0x39
+#define FACILITY_CLASS_SAILOR 0x3a
+#define FACILITY_CLASS_WALLY 0x3b
+#define FACILITY_CLASS_BRENDAN 0x3c
+#define FACILITY_CLASS_BRENDAN_2 0x3d
+#define FACILITY_CLASS_BRENDAN_3 0x3e
+#define FACILITY_CLASS_MAY 0x3f
+#define FACILITY_CLASS_MAY_2 0x40
+#define FACILITY_CLASS_MAY_3 0x41
+#define FACILITY_CLASS_PKMN_BREEDER_M 0x42
+#define FACILITY_CLASS_BUG_CATCHER 0x43
+#define FACILITY_CLASS_PKMN_RANGER_M 0x44
+#define FACILITY_CLASS_PKMN_RANGER_F 0x45
+#define FACILITY_CLASS_MAGMA_LEADER_MAXIE 0x46
+#define FACILITY_CLASS_LASS 0x47
+#define FACILITY_CLASS_YOUNG_COUPLE 0x48
+#define FACILITY_CLASS_OLD_COUPLE 0x49
+#define FACILITY_CLASS_SIS_AND_BRO 0x4a
+#define FACILITY_CLASS_STEVEN 0x4b
+#define FACILITY_CLASS_SALON_MAIDEN_ANABEL 0x4c
+#define FACILITY_CLASS_DOME_ACE_TUCKER 0x4d
+#define FACILITY_CLASS_RED 0x4e
+#define FACILITY_CLASS_LEAF 0x4f
+#define FACILITY_CLASS_RS_BRENDAN 0x50
+#define FACILITY_CLASS_RS_MAY 0x51
+
+#define FACILITY_CLASSES_COUNT 0x52
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
#define TRAINER_CLASS_HIKER 0x2
#define TRAINER_CLASS_TEAM_AQUA 0x3
#define TRAINER_CLASS_PKMN_BREEDER 0x4
-#define TRAINER_CLASS_COOLTRAINER_1 0x5
+#define TRAINER_CLASS_COOLTRAINER 0x5
#define TRAINER_CLASS_BIRD_KEEPER 0x6
#define TRAINER_CLASS_COLLECTOR 0x7
#define TRAINER_CLASS_SWIMMER_M 0x8
@@ -218,8 +220,8 @@
#define TRAINER_CLASS_AROMA_LADY 0xf
#define TRAINER_CLASS_RUIN_MANIAC 0x10
#define TRAINER_CLASS_INTERVIEWER 0x11
-#define TRAINER_CLASS_TUBER_1 0x12
-#define TRAINER_CLASS_TUBER_2 0x13
+#define TRAINER_CLASS_TUBER_F 0x12
+#define TRAINER_CLASS_TUBER_M 0x13
#define TRAINER_CLASS_LADY 0x14
#define TRAINER_CLASS_BEAUTY 0x15
#define TRAINER_CLASS_RICH_BOY 0x16
@@ -248,7 +250,7 @@
#define TRAINER_CLASS_SWIMMER_F 0x2d
#define TRAINER_CLASS_TWINS 0x2e
#define TRAINER_CLASS_SAILOR 0x2f
-#define TRAINER_CLASS_COOLTRAINER_2 0x30
+#define TRAINER_CLASS_COOLTRAINER_UNUSED 0x30
#define TRAINER_CLASS_MAGMA_ADMIN 0x31
#define TRAINER_CLASS_PKMN_TRAINER_3 0x32
#define TRAINER_CLASS_BUG_CATCHER 0x33
diff --git a/include/constants/weather.h b/include/constants/weather.h
index 953cc2753..d0a81c34c 100644
--- a/include/constants/weather.h
+++ b/include/constants/weather.h
@@ -16,6 +16,7 @@
#define WEATHER_DROUGHT 12
#define WEATHER_RAIN_HEAVY 13
#define WEATHER_BUBBLES 14
+#define WEATHER_15 15
#define WEATHER_ROUTE119_CYCLE 20
#define WEATHER_ROUTE123_CYCLE 21
diff --git a/include/contest.h b/include/contest.h
index 8790d7371..c205737ee 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -231,6 +231,7 @@ extern u8 gContestPlayerMonIndex;
extern s16 gUnknown_02039F08[4];
extern s16 gContestMonConditions[4];
extern u8 gIsLinkContest;
+extern struct ContestWinner gUnknown_02039F3C;
struct Shared18000
{
diff --git a/include/contest_painting.h b/include/contest_painting.h
index 67a845d62..c633c50cc 100644
--- a/include/contest_painting.h
+++ b/include/contest_painting.h
@@ -1,7 +1,16 @@
#ifndef GUARD_CONTESTPAINTING_H
#define GUARD_CONTESTPAINTING_H
-void sub_812FDA8(u32);
-void sub_812FDEC(void);
+enum
+{
+ CONTESTRESULT_COOL = 9,
+ CONTESTRESULT_BEAUTY = 13,
+ CONTESTRESULT_CUTE = 2,
+ CONTESTRESULT_SMART = 36,
+ CONTESTRESULT_TOUGH = 6,
+};
+
+void sub_812FDA8(int);
+void CB2_ContestPainting(void);
#endif
diff --git a/include/contest_painting_effects.h b/include/contest_painting_effects.h
new file mode 100755
index 000000000..3b6964666
--- /dev/null
+++ b/include/contest_painting_effects.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_CONTEST_PAINTING_EFFECTS_H
+#define GUARD_CONTEST_PAINTING_EFFECTS_H
+
+struct Unk030061A0
+{
+ u8 var_0;
+ u8 pad1[3];
+ u16 (*var_4)[][32];
+ u16 *var_8;
+ u8 pad0C[4];
+ u32 var_10;
+ u16 var_14;
+ u16 var_16;
+ u8 var_18;
+ u8 var_19;
+ u8 var_1A;
+ u8 var_1B;
+ u8 var_1C;
+ u8 var_1D;
+ u8 var_1E;
+ u8 var_1F;
+};
+
+void sub_8124F2C(struct Unk030061A0 *);
+void sub_81261A4(struct Unk030061A0 *);
+void sub_8126058(struct Unk030061A0 *);
+
+#endif
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 6515791c3..cc45f1531 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -19,7 +19,8 @@ enum SpinnerRunnerFollowPatterns
RUNFOLLOW_SOUTH_EAST_WEST
};
-struct UnkStruct_085094AC {
+struct UnkStruct_085094AC
+{
const union AnimCmd *const *anims;
u8 animPos[4];
};
@@ -45,28 +46,6 @@ struct UnkStruct_085094AC {
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
-#define movement_type_def(setup, table) \
-static u8 setup##_callback(struct EventObject *, struct Sprite *);\
-void setup(struct Sprite *sprite)\
-{\
- UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
-}\
-static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
-{\
- return table[sprite->data[1]](eventObject, sprite);\
-}
-
-#define movement_type_empty_callback(setup) \
-static u8 setup##_callback(struct EventObject *, struct Sprite *);\
-void setup(struct Sprite *sprite)\
-{\
- UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
-}\
-static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
-{\
- return 0;\
-}
-
struct PairedPalettes
{
u16 tag;
diff --git a/include/event_scripts.h b/include/event_scripts.h
index dd0eca12f..2661494d3 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1,7 +1,3 @@
-//
-// Created by scott on 9/12/2017.
-//
-
#ifndef GUARD_EVENT_SCRIPTS_H
#define GUARD_EVENT_SCRIPTS_H
@@ -14,11 +10,11 @@ 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_DoTainerBattle[];
extern const u8 EventScript_TryDoDoubleTrainerBattle[];
-extern const u8 EventScript_271362[];
+extern const u8 EventScript_TryDoNormalTrainerBattle[];
extern const u8 EventScript_TryDoDoubleRematchBattle[];
-extern const u8 EventScript_2713D1[];
+extern const u8 EventScript_TryDoRematchBattle[];
extern const u8 EventScript_SecretPower1[];
extern const u8 EventScript_SecretPower2[];
@@ -409,14 +405,14 @@ extern const u8 gText_SoDesirable[];
extern const u8 gText_SoExciting[];
extern const u8 gText_SoAmusing[];
extern const u8 gText_SoMagical[];
-extern const u8 gUnknown_08294313[];
-extern const u8 gUnknown_08294359[];
-extern const u8 gUnknown_08294398[];
-extern const u8 gUnknown_082943DA[];
-extern const u8 gUnknown_0829441C[];
-extern const u8 gUnknown_08294460[];
-extern const u8 gUnknown_082944A0[];
-extern const u8 gUnknown_082944D5[];
+extern const u8 gMauvilleManText_ISoWantToGoOnAVacation[];
+extern const u8 gMauvilleManText_IBoughtCrayonsWith120Colors[];
+extern const u8 gMauvilleManText_WouldntItBeNiceIfWeCouldFloat[];
+extern const u8 gMauvilleManText_WhenYouWriteOnASandyBeach[];
+extern const u8 gMauvilleManText_WhatsTheBottomOfTheSeaLike[];
+extern const u8 gMauvilleManText_WhenYouSeeTheSettingSunDoesIt[];
+extern const u8 gMauvilleManText_LyingBackInTheGreenGrass[];
+extern const u8 gMauvilleManText_SecretBasesAreSoWonderful[];
extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E930[];
@@ -578,4 +574,9 @@ extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224175[];
extern const u8 SSTidalCorridor_EventScript_23C050[];
extern const u8 gUnknown_082A8350[];
-#endif //GUARD_EVENT_SCRIPTS_H
+// Battle Pyramid.
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A[];
+
+#endif // GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
deleted file mode 100644
index 7c2d16a24..000000000
--- a/include/field_fadetransition.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_FIELD_FADETRANSITION_H
-#define GUARD_FIELD_FADETRANSITION_H
-
-void sub_80AF734(void);
-void sp13E_warp_to_last_warp(void);
-void sub_80AF7D0(void);
-void sp13F_fall_to_last_warp(void);
-
-void sub_80AF848(void);
-void sub_80AF87C(void);
-
-#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_screen.h b/include/field_screen.h
deleted file mode 100644
index 021d2b9e9..000000000
--- a/include/field_screen.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef GUARD_FIELD_SCREEN_H
-#define GUARD_FIELD_SCREEN_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-void pal_fill_black(void);
-bool8 IsWeatherNotFadingIn(void);
-void sub_80AF168(void);
-void sub_80AF2B4(u8 taskId);
-void UpdateWeatherPerDay(u16 days);
-void sub_80AC3D0(void);
-void sub_80AC3E4(void);
-void PreservePaletteInWeather(u8);
-void sub_80AF128(void);
-void sub_80AB104(u8);
-void sub_80AF80C(u8);
-void sub_80AF828(void);
-void sub_80AF838(void);
-void sub_80B0268(void);
-
-#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index ef81c2f9e..f3ac2e866 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -1,8 +1,44 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
+void pal_fill_for_maplights(void);
+void pal_fill_black(void);
+void WarpFadeScreen(void);
+void sub_80AF128(void);
+void sub_80AF168(void);
+void sub_80AF188(void);
+void sub_80AF214(void);
+void sub_80AF2B4(u8 taskId);
+void sub_80AF314(void);
+void mapldr_default(void);
+void sub_80AF3B0(void);
+void sub_80AF3C8(void);
+void sub_80AF3E8(void);
+void sub_80AF40C(void);
+void sub_80AF688(void);
+bool8 sub_80AF6A4(void);
+void sub_80AF6D4(void);
+void sub_80AF6F0(void);
+void sub_80AF734(void);
+void sp13E_warp_to_last_warp(void);
void sub_80AF79C(void);
-void sub_80B009C(u8);
+void sub_80AF7D0(void);
+void sp13F_fall_to_last_warp(void);
+void sub_80AF80C(u8 metatileBehavior);
+void sub_80AF828(void);
+void sub_80AF838(void);
+void sub_80AF848(void);
+void sub_80AF87C(void);
+void sub_80AF8B8(void);
+void sub_80AF948(void);
+void sub_80AF9F8(void);
+void sub_80AFC60(void);
+void sub_80B009C(u8 flashLevel);
+void door_upload_tiles(void);
void sub_80B0244(void);
+void sub_80B0268(void);
+void sub_80B0534(void);
+void sub_80B058C(void);
+void sub_80B05B4(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_weather.h b/include/field_weather.h
index a48361b8a..c032183e1 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -4,13 +4,23 @@
#include "sprite.h"
// Controls how the weather should be changing the screen palettes.
-enum {
+enum
+{
WEATHER_PAL_STATE_CHANGING_WEATHER,
WEATHER_PAL_STATE_SCREEN_FADING_IN,
WEATHER_PAL_STATE_SCREEN_FADING_OUT,
WEATHER_PAL_STATE_IDLE,
};
+// For the FadeScreen function.
+enum
+{
+ FADE_FROM_BLACK,
+ FADE_TO_BLACK,
+ FADE_FROM_WHITE,
+ FADE_TO_WHITE,
+};
+
struct Weather
{
union
@@ -38,11 +48,11 @@ struct Weather
u8 gammaStepDelay;
u8 gammaStepFrameCounter;
u16 fadeDestColor;
- u8 palProcessingState;
- u8 fadeScreenCounter;
- bool8 readyForInit;
- u8 taskId;
- u8 unknown_6CA;
+ /*0x6C6*/ u8 palProcessingState;
+ /*0x6C7*/ u8 fadeScreenCounter;
+ /*0x6C8*/ bool8 readyForInit;
+ /*0x6C9*/ u8 taskId;
+ /*0x6CA*/ u8 unknown_6CA;
u8 unknown_6CB;
u16 initStep;
u16 finishStep;
@@ -121,57 +131,103 @@ struct Weather
u8 loadDroughtPalsOffset;
};
+// field_weather.c
+extern struct Weather gWeather;
+extern struct Weather *const gWeatherPtr;
+
void StartWeather(void);
void ChangeWeather(u8 weather);
-void sub_807C988(u8 effect);
-void sub_807C9B4(u8 effect);
-void Task_WeatherInit(u8);
-void Task_WeatherMain(u8);
-void sub_807CAE8(void);
-void nullsub_38(void);
-void SetWeatherScreenFadeOut(void);
-
-enum
-{
- FADE_FROM_BLACK,
- FADE_TO_BLACK,
- FADE_FROM_WHITE,
- FADE_TO_WHITE,
-};
-
-void FadeScreen(u8, s8);
-// ...
-void UpdateSpritePaletteWithWeather(u8 tag);
-void ApplyWeatherGammaShiftToPal(u8);
-// ...
-void Weather_SetBlendCoeffs(u8, u8);
-// ...
-void PlayRainSoundEffect(void);
-// ...
-void SetSav1Weather(u32);
-u8 GetSav1Weather(void);
-void sub_80AEDBC(void);
-
-void SetSav1WeatherFromCurrMapHeader(void);
-// ...
-void DoCurrentWeather(void);
-void sub_8080750(void);
-
+void sub_80AB104(u8 weather);
+void sub_80AB130(u8 weather);
+void sub_80ABC48(s8 gammaIndex);
+void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
+void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void);
-bool8 IsWeatherChangeComplete(void);
-void SetWeather(u32);
-void UpdateWeatherPerDay(u16);
-void PreservePaletteInWeather(u8 index);
-void ResetPreservedPalettesInWeather(void);
-extern void ResetDroughtWeatherPaletteLoading(void);
+void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
+void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
+u8 sub_80ABF20(void);
+void LoadCustomWeatherSpritePalette(const u16 *palette);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
+void sub_80ABFE0(s8 gammaIndex);
+void sub_80ABFF0(void);
+void sub_80AC01C(void);
+void Weather_SetBlendCoeffs(u8 eva, u8 evb);
+void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay);
+bool8 Weather_UpdateBlend(void);
+void sub_80AC274(u8 a);
u8 GetCurrentWeather(void);
-void LoadCustomWeatherSpritePalette(const u16 *palette);
-
+void SetRainStrengthFromSoundEffect(u16 soundEffect);
+void PlayRainSoundEffect(void);
+u8 IsWeatherChangeComplete(void);
+void SetWeatherScreenFadeOut(void);
+void sub_80AC3E4(void);
+void PreservePaletteInWeather(u8 preservedPalIndex);
+void ResetPreservedPalettesInWeather(void);
-extern struct Weather gWeather;
+// field_weather_effect.c
+void Clouds_InitVars(void);
+void Clouds_Main(void);
+void Clouds_InitAll(void);
+bool8 Clouds_Finish(void);
+void Weather2_InitVars(void);
+void Weather2_Main(void);
+void Weather2_InitAll(void);
+bool8 Weather2_Finish(void);
+void LightRain_InitVars(void);
+void LightRain_Main(void);
+void LightRain_InitAll(void);
+bool8 LightRain_Finish(void);
+void Snow_InitVars(void);
+void Snow_Main(void);
+void Snow_InitAll(void);
+bool8 Snow_Finish(void);
+void MedRain_InitVars(void);
+void Rain_Main(void);
+void MedRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog1_InitAll(void);
+bool8 Fog1_Finish(void);
+void Ash_InitVars(void);
+void Ash_Main(void);
+void Ash_InitAll(void);
+bool8 Ash_Finish(void);
+void Sandstorm_InitVars(void);
+void Sandstorm_Main(void);
+void Sandstorm_InitAll(void);
+bool8 Sandstorm_Finish(void);
+void Fog2_InitVars(void);
+void Fog2_Main(void);
+void Fog2_InitAll(void);
+bool8 Fog2_Finish(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog1_InitAll(void);
+bool8 Fog1_Finish(void);
+void Shade_InitVars(void);
+void Shade_Main(void);
+void Shade_InitAll(void);
+bool8 Shade_Finish(void);
+void Drought_InitVars(void);
+void Drought_Main(void);
+void Drought_InitAll(void);
+bool8 Drought_Finish(void);
+void HeavyRain_InitVars(void);
+void Rain_Main(void);
+void HeavyRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Bubbles_InitVars(void);
+void Bubbles_Main(void);
+void Bubbles_InitAll(void);
+bool8 Bubbles_Finish(void);
-extern struct Weather *const gWeatherPtr;
+u8 GetSav1Weather(void);
+void SetSav1Weather(u32 weather);
+void SetSav1WeatherFromCurrMapHeader(void);
+void SetWeather(u32 weather);
+void DoCurrentWeather(void);
+void UpdateWeatherPerDay(u16 increment);
#endif // GUARD_WEATHER_H
diff --git a/include/frontier_util.h b/include/frontier_util.h
index 6b6a2ea39..9464ba91c 100644
--- a/include/frontier_util.h
+++ b/include/frontier_util.h
@@ -29,4 +29,6 @@ u8 GetFrontierBrainMonNature(u8 monId);
u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId);
s32 GetFronterBrainSymbol(void);
+extern const u16 gFrontierBannedSpecies[];
+
#endif // GUARD_FRONTIER_UTIL_H
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
index c5eb456c3..1be3852e3 100644
--- a/include/gba/isagbprint.h
+++ b/include/gba/isagbprint.h
@@ -5,7 +5,7 @@
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
-#define AGBPrintf(pBuf, ...)
+#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
@@ -21,30 +21,30 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
#undef AGB_ASSERT
#ifdef NDEBUG
-#define AGB_ASSERT(exp)
+#define AGB_ASSERT(exp)
#else
-#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
-#define AGB_WARNING(exp)
+#define AGB_WARNING(exp)
#else
-#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
// for matching purposes
#ifdef NDEBUG
-#define AGB_ASSERT_EX(exp, file, line)
+#define AGB_ASSERT_EX(exp, file, line)
#else
-#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
+#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
#endif
#ifdef NDEBUG
-#define AGB_WARNING_EX(exp, file, line)
+#define AGB_WARNING_EX(exp, file, line)
#else
-#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
+#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/gba/types.h b/include/gba/types.h
index a7dbf3e03..fff48d437 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -32,7 +32,9 @@ struct BgCnt
{
u16 priority:2;
u16 charBaseBlock:2;
- u16 dummy:4;
+ u16 dummy:2;
+ u16 mosaic:1;
+ u16 palettes:1;
u16 screenBaseBlock:5;
u16 areaOverflowMode:1;
u16 screenSize:2;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 1f14880f0..5ed9b250a 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -294,10 +294,10 @@ struct PlayerAvatar
/*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
/*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
/*0x0B*/ u8 bikeSpeed;
- // acro bike only
+ // acro bike only
/*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
/*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
- // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
+ // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
/*0x14*/ u8 dirTimerHistory[8];
/*0x1C*/ u8 abStartSelectTimerHistory[8];
};
diff --git a/include/global.h b/include/global.h
index cc8df049f..e3792ac56 100644
--- a/include/global.h
+++ b/include/global.h
@@ -61,6 +61,12 @@
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
+// Extracts the upper 16 bits of a 32-bit number
+#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
+
+// Extracts the lower 16 bits of a 32-bit number
+#define LOHALF(n) ((n) & 0xFFFF)
+
// There are many quirks in the source code which have overarching behavioral differences from
// a number of other files. For example, diploma.c seems to declare rodata before each use while
// other files declare out of order and must be at the beginning. There are also a number of
@@ -79,6 +85,14 @@
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+#define S16TOPOSFLOAT(val) \
+({ \
+ s16 v = (val); \
+ float f = (float)v; \
+ if(v < 0) f += 65536.0f; \
+ f; \
+})
+
// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
@@ -222,7 +236,7 @@ struct Time
struct Pokedex
{
/*0x00*/ u8 order;
- /*0x01*/ u8 unknown1;
+ /*0x01*/ u8 mode;
/*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode
/*0x03*/ u8 unknown2;
/*0x04*/ u32 unownPersonality; // set when you first see Unown
@@ -293,7 +307,7 @@ struct Apprentice
u32 checksum;
};
-struct UnknownPokemonStruct
+struct BattleTowerPokemon
{
u16 species;
u16 heldItem;
@@ -330,7 +344,7 @@ struct EmeraldBattleTowerRecord
/*0x10*/ u16 greeting[6];
/*0x1C*/ u16 speechWon[6];
/*0x28*/ u16 speechLost[6];
- /*0x34*/ struct UnknownPokemonStruct party[4];
+ /*0x34*/ struct BattleTowerPokemon party[4];
/*0xE4*/ u8 language;
/*0xE8*/ u32 checksum;
};
@@ -345,7 +359,7 @@ struct BattleTowerEReaderTrainer
/*0x10*/ u16 greeting[6];
/*0x1C*/ u16 farewellPlayerLost[6];
/*0x28*/ u16 farewellPlayerWon[6];
- /*0x34*/ struct UnknownPokemonStruct party[3];
+ /*0x34*/ struct BattleTowerPokemon party[3];
/*0xB8*/ u32 checksum;
};
@@ -881,7 +895,7 @@ struct SaveBlock1
/*0x24*/ struct WarpData warp4;
/*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
- /*0x2F*/ u8 filler_2F;
+ /*0x2F*/ u8 weatherCycleStage;
/*0x30*/ u8 flashLevel;
/*0x32*/ u16 mapLayoutId;
/*0x34*/ u16 mapView[0x100];
diff --git a/include/graphics.h b/include/graphics.h
index 0620ea551..33a26068b 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2920,8 +2920,8 @@ extern const u32 gTrainerFrontPic_LeaderJuan[];
extern const u32 gTrainerFrontPic_SchoolKidM[];
extern const u32 gTrainerFrontPic_SchoolKidF[];
extern const u32 gTrainerFrontPic_SrAndJr[];
-extern const u32 gTrainerFrontPic_WinstrateM[];
-extern const u32 gTrainerFrontPic_WinstrateF[];
+extern const u32 gTrainerFrontPic_PokefanM[];
+extern const u32 gTrainerFrontPic_PokefanF[];
extern const u32 gTrainerFrontPic_Youngster[];
extern const u32 gTrainerFrontPic_ChampionWallace[];
extern const u32 gTrainerFrontPic_Fisherman[];
@@ -3014,8 +3014,8 @@ extern const u32 gTrainerPalette_LeaderJuan[];
extern const u32 gTrainerPalette_SchoolKidM[];
extern const u32 gTrainerPalette_SchoolKidF[];
extern const u32 gTrainerPalette_SrAndJr[];
-extern const u32 gTrainerPalette_WinstrateM[];
-extern const u32 gTrainerPalette_WinstrateF[];
+extern const u32 gTrainerPalette_PokefanM[];
+extern const u32 gTrainerPalette_PokefanF[];
extern const u32 gTrainerPalette_Youngster[];
extern const u32 gTrainerPalette_ChampionWallace[];
extern const u32 gTrainerPalette_Fisherman[];
@@ -3282,18 +3282,18 @@ extern const u32 gBattleTerrainPalette_StadiumWallace[];
extern const u32 gPokedexMenu2_Gfx[];
extern const u16 gPokedexText_Pal[];
extern const u32 gPokedexMenu_Gfx[];
-extern const u8 gUnknown_08DC2C5C[];
-extern const u8 gUnknown_08DC2DAC[];
-extern const u8 gUnknown_08DC2A08[];
-extern const u8 gUnknown_08DC2B1C[];
+extern const u8 gPokedexTilemap_Main[];
+extern const u8 gPokedexTilemap_MainUnderlay[];
+extern const u8 gPokedexTilemap_StartMenu1[];
+extern const u8 gPokedexTilemap_StartMenu2[];
extern const u16 gPokedexHoennBg_Pal[];
extern const u16 gPokedexText_Pal[];
extern const u16 gPokedexNationalBg_Pal[];
-extern const u8 gUnknown_08DC3080[];
-extern const u8 gUnknown_08DC3198[];
-extern const u8 gUnknown_08DC2E6C[];
-extern const u8 gUnknown_08DC2F5C[];
-extern const u8 gUnknown_08DC2FEC[];
+extern const u8 gPokedexTilemap_DescriptionScreen[];
+extern const u8 gPokedexTilemap_CryScreen[];
+extern const u8 gPokedexTilemap_SizeScreen[];
+extern const u8 gPokedexTilemap_ScreenSelectBar1[];
+extern const u8 gPokedexTilemap_ScreenSelectBar2[];
extern const u16 gPokedexCaughtScreenFade_Pal[];
extern const u32 gPokedexSearchMenu_Gfx[];
extern const u32 gPokedexSearch2_Tilemap[];
@@ -3360,7 +3360,7 @@ extern const u32 gRaySceneHushBg_Gfx[];
extern const u32 gRaySceneHushRing_Gfx[];
// Pokeballs
-extern const u32 gItemIcon_MasterBall[];
+extern const u32 gItemIcon_MasterBall[];
extern const u32 gItemIconPalette_MasterBall[];
extern const u32 gItemIcon_UltraBall[];
extern const u32 gItemIconPalette_UltraBall[];
@@ -4233,6 +4233,7 @@ extern const u32 gBattleAnimSpriteSheet_132[];
extern const u32 gBattleAnimSpriteSheet_133[];
extern const u32 gBattleAnimSpriteSheet_134[];
extern const u32 gBattleAnimSpriteSheet_135[];
+extern const u32 gBattleAnimSpriteSheet_Particles[];
extern const u32 gBattleAnimSpriteSheet_136[];
extern const u32 gBattleAnimSpriteSheet_137[];
extern const u32 gBattleAnimSpriteSheet_138[];
@@ -4736,4 +4737,21 @@ extern const u32 gSlotMachineReelTime_Gfx[];
extern const u32 gUnknown_08D8D410[];
extern const u32 gUnknown_08D8D58C[];
+// Pokedex Area Screen
+extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[];
+extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];
+
+// Cable Car
+extern const u32 gUnknown_08DBA5B8[];
+extern const u16 gUnknown_08DBA518[];
+extern const u32 gCableCar_Gfx[];
+extern const u32 gCableCarDoor_Gfx[];
+extern const u32 gCableCarCord_Gfx[];
+extern const u16 gCableCar_Pal[];
+
+// Battle Anim
+extern const u32 gUnknown_08C2DDA4[];
+extern const u32 gUnknown_08C2EA50[];
+extern const u32 gUnknown_08C2EA9C[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index 343c5453c..2d5b1c871 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -2,22 +2,23 @@
#define GUARD_INTERNATIONAL_STRING_UTIL_H
#include "menu.h"
+#include "list_menu.h"
-void sub_81DB52C(const u8 *src);
-void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language);
-s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
-s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
-s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
-s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
-s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
-s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2);
-// sub_81DB41C
-// CopyMonCategoryText
-// sub_81DB494
-void PadNameString(u8 *dst, u8 padWith);
+void sub_81DB52C(u8 *src);
+void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language);
+int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth);
+int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth);
+int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing);
+int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing);
+int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1);
+int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2);
+int sub_81DB41C(const struct ListMenuTemplate *listMenu);
+void CopyMonCategoryText(int dexNum, u8 *dest);
+u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth);
+void PadNameString(u8 *dest, u8 padChar);
void sub_81DB554(u8 *, u8);
void sub_81DB5AC(u8 *);
-u32 sub_81DB604(const u8 *);
-// sub_81DB620
+int sub_81DB604(u8 *);
+void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows);
#endif // GUARD_INTERNATIONAL_STRING_UTIL_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 649eb934c..ce439e282 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -1,6 +1,22 @@
#ifndef GUARD_item_menu_H
#define GUARD_item_menu_H
+#include "item.h"
+
+#define RETURN_LOCATION_FIELD 0
+#define RETURN_LOCATION_BATTLE 1
+#define RETURN_LOCATION_POKEMON_LIST 2
+#define RETURN_LOCATION_SHOP 3
+#define RETURN_LOCATION_FIELD_2 4
+#define RETURN_LOCATION_FIELD_3 5
+#define RETURN_LOCATION_PC 6
+#define RETURN_LOCATION_FIELD_4 7
+#define RETURN_LOCATION_FIELD_5 8
+#define RETURN_LOCATION_FIELD_6 9
+#define RETURN_LOCATION_BATTLE_2 10
+#define RETURN_LOCATION_PC_2 11
+#define RETURN_LOCATION_UNCHANGED 12
+
// Exported type declarations
struct BagStruct
{
@@ -8,18 +24,18 @@ struct BagStruct
u8 location;
u8 pocket;
u16 unk6;
- u16 cursorPosition[5];
- u16 scrollPosition[5];
+ u16 cursorPosition[POCKETS_COUNT];
+ u16 scrollPosition[POCKETS_COUNT];
};
extern struct BagStruct gUnknown_0203CE58;
struct UnkBagStruct
{
- void (*unk0)(void);
- u8 unk4[0x800];
- u8 unk804[12];
- u8 unk810[7];
+ void (*mainCallback2)(void);
+ u8 tilemapBuffer[0x800];
+ u8 spriteId[12];
+ u8 windowPointers[7];
u8 unk817;
u8 unk818;
u8 unk819;
@@ -27,7 +43,7 @@ struct UnkBagStruct
u8 unk81B:4;
u8 unk81B_1:2;
u8 unk81B_3:1;
- u8 unk81B_2:1;
+ u8 hideCloseBagText:1;
u8 filler3[2];
u8 unk81E;
u8 unk81F;
@@ -36,11 +52,11 @@ struct UnkBagStruct
u8 unk825;
u8 filler[2];
u8 unk828;
- u8 unk829[5];
- u8 unk82E[6];
+ u8 numItemStacks[POCKETS_COUNT];
+ u8 numShownItems[6];
s16 unk834;
u8 filler4[0xE];
- u8 unk844[32][32];
+ u8 pocketNameBuffer[32][32];
u8 filler2[4];
};
@@ -55,9 +71,10 @@ void sub_81AAC14(void);
void sub_81AAC50(void);
void sub_81AAC70(void);
void sub_81AAC28(void);
+void SetInitialScrollAndCursorPositions(u8 pocketId);
void bag_menu_mail_related(void);
void CB2_BagMenuFromStartMenu(void);
-u8 sub_81ABB2C(u8 pocketId);
+u8 GetItemListPosition(u8 pocketId);
bool8 UseRegisteredKeyItemOnField(void);
void CB2_GoToSellMenu(void);
diff --git a/include/librfu.h b/include/librfu.h
index 9d131f027..49df42541 100644
--- a/include/librfu.h
+++ b/include/librfu.h
@@ -1,3 +1,6 @@
+#ifndef GUARD_LIBRFU_H
+#define GUARD_LIBRFU_H
+
#include "main.h"
enum
@@ -81,7 +84,7 @@ struct UnkLinkRfuStruct_02022B14Substruct
u8 playerTrainerId[2];
};
-struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
+struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14
{
struct UnkLinkRfuStruct_02022B14Substruct unk_00;
u8 unk_04[4];
@@ -169,13 +172,14 @@ struct RfuUnk3
u32 unk_dc;
};
-struct RfuUnk5Sub {
+struct RfuUnk5Sub
+{
u16 unk_00;
u8 unk_02;
u16 unk_04;
struct UnkLinkRfuStruct_02022B14 unk_06;
- u8 fill_13[2];
- u8 unk_15[8];
+ u8 fill_13[1];
+ u8 playerName[PLAYER_NAME_LENGTH + 1];
};
struct RfuUnk5
@@ -252,3 +256,5 @@ void rfu_UNI_readySendData(u8 a0);
void rfu_UNI_clearRecvNewDataFlag(u8 a0);
void rfu_REQ_PARENT_resumeRetransmitAndChange(void);
void rfu_NI_setSendData(u8, u8, u8 *, u8);
+
+#endif // GUARD_LIBRFU_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index c3ca75604..426565e56 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_LINK_RFU_H
#define GUARD_LINK_RFU_H
+#include "librfu.h"
+
// Exported type declarations
struct UnkLinkRfuStruct_02022B2C
@@ -32,7 +34,8 @@ struct UnkLinkRfuStruct_02022B44
u8 fill_84[0x58];
};
-struct UnkRfuStruct_1 {
+struct UnkRfuStruct_1
+{
/* 0x000 */ u8 unk_00;
/* 0x001 */ u8 unk_01;
/* 0x002 */ vu8 unk_02;
@@ -75,7 +78,8 @@ struct UnkRfuStruct_1 {
/* 0xeb4 */ u8 filler_e64[12];
};
-struct UnkRfuStruct_2_Sub_6c {
+struct UnkRfuStruct_2_Sub_6c
+{
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ const u8 *unk_04;
@@ -86,7 +90,8 @@ struct UnkRfuStruct_2_Sub_6c {
/* 0x12 */ u8 unk_12;
};
-struct UnkRfuStruct_2_Sub_124 {
+struct UnkRfuStruct_2_Sub_124
+{
/* 0x000 */ u8 unk_00[32][70];
/* 0x8c0 */ vu8 unk_8c0;
/* 0x8c1 */ vu8 unk_8c1;
@@ -94,7 +99,8 @@ struct UnkRfuStruct_2_Sub_124 {
/* 0x8c3 */ vu8 unk_8c3;
};
-struct UnkRfuStruct_2_Sub_9e8 {
+struct UnkRfuStruct_2_Sub_9e8
+{
/* 0x000 */ u8 unk_00[40][14];
/* 0x230 */ vu8 unk_230;
/* 0x231 */ vu8 unk_231;
@@ -102,14 +108,16 @@ struct UnkRfuStruct_2_Sub_9e8 {
/* 0x233 */ vu8 unk_233;
};
-struct UnkRfuStruct_2_Sub_c1c {
+struct UnkRfuStruct_2_Sub_c1c
+{
/* 0x00 */ u8 unk_00[2][14];
/* 0x1c */ vu8 unk_1c;
/* 0x1d */ vu8 unk_1d;
/* 0x1e */ vu8 unk_1e;
};
-struct UnkRfuStruct_Sub_Unused {
+struct UnkRfuStruct_Sub_Unused
+{
/* 0x000 */ u8 unk_00[2][256];
/* 0x200 */ vu8 unk_200;
/* 0x201 */ vu8 unk_201;
@@ -117,7 +125,8 @@ struct UnkRfuStruct_Sub_Unused {
/* 0x203 */ vu8 unk_203;
};
-struct UnkRfuStruct_2 {
+struct UnkRfuStruct_2
+{
/* 0x000 */ void (*unk_00)(void);
/* 0x004 */ u16 unk_04;
/* 0x006 */ u8 filler_06[4];
@@ -149,7 +158,10 @@ struct UnkRfuStruct_2 {
/* 0x0fe */ u16 unk_fe;
/* 0x100 */ u16 unk_100;
/* 0x102 */ u8 unk_102;
- /* 0x103 */ u8 filler_103[0x21];
+ /* 0x103 */ u8 filler_103[0x10A - 0x103];
+ /* 0x10A */ struct UnkLinkRfuStruct_02022B14 unk_10A;
+ u8 filler_;
+ u8 playerName[PLAYER_NAME_LENGTH + 1];
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
@@ -184,7 +196,8 @@ struct UnkRfuStruct_2 {
/* 0xcee */ u8 unk_cee[4];
}; // size = 0xcf4
-struct UnkRfuStruct_8010A14 {
+struct UnkRfuStruct_8010A14
+{
char unk_00[15];
u8 unk_0f;
u8 unk_10[4];
@@ -252,17 +265,18 @@ void sub_800E3A8(void);
void sub_800ED10(void);
void sub_800ED28(void);
void sub_8011090(u8 a0, u32 a1, u32 a2);
-void sub_8011FC8(u8 *a0, u16 a1);
+void sub_8011FC8(const u8 *src, u16 trainerId);
void sub_8010FA0(bool32 a0, bool32 a1);
void sub_8010F60(void);
void sub_8010FCC(u32 a0, u32 a1, u32 a2);
void sub_8011C84(void);
-void sub_8012188(const u8 *a0, struct UnkLinkRfuStruct_02022B14 *arg1, u8 arg2);
+void sub_8012188(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2);
bool32 sub_8011B90(void);
void sub_800FE50(u16 *a0);
bool32 sub_800E540(u16 id, u8 *name);
void sub_8011DE0(u32 arg0);
u8 sub_801100C(int a0);
void sub_800EF7C(void);
+bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
#endif //GUARD_LINK_RFU_H
diff --git a/include/main.h b/include/main.h
index 47b26b1c7..0d441035d 100644
--- a/include/main.h
+++ b/include/main.h
@@ -51,7 +51,7 @@ extern bool8 gSoftResetDisabled;
extern IntrFunc gIntrTable[];
extern u8 gLinkVSyncDisabled;
extern u32 IntrMain_Buffer[];
-extern u8 gPcmDmaCounter;
+extern s8 gPcmDmaCounter;
void AgbMain(void);
void SetMainCallback2(MainCallback callback);
diff --git a/include/menu.h b/include/menu.h
index eb525efe9..894dfd78e 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -36,6 +36,7 @@ u32 GetPlayerTextSpeed(void);
u8 GetPlayerTextSpeedDelay(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
+void sub_8199DF0(u32 bg, u8 a1, int a2, int a3);
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
diff --git a/include/overworld.h b/include/overworld.h
index 6f7801905..1f53662b3 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -47,13 +47,8 @@ void Overworld_SetEventObjTemplateMovementType(u8 localId, u8 movementType);
const struct MapLayout *GetMapLayout(void);
void ApplyCurrentWarp(void);
void set_warp2_warp3_to_neg_1(void);
-static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-static bool32 IsDummyWarp(struct WarpData *warp);
struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);
struct MapHeader const *const GetDestinationWarpMapHeader(void);
-static void LoadCurrentMapData(void);
-static void LoadSaveblockMapHeader(void);
-static void SetPlayerCoordsFromWarp(void);
void WarpIntoMap(void);
void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId);
@@ -67,7 +62,6 @@ void sub_8084D5C(s16 a1, s16 a2);
void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8084E14(void);
void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-static void SetFixedDiveWarpAsDestination(void);
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedHoleWarpAsDestination(s16 x, s16 y);
void warp1_set_to_sav1w(void);
@@ -75,7 +69,6 @@ void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8084F6C(u8 a1);
void sub_8084FAC(int unused);
const struct MapConnection *GetMapConnection(u8 dir);
-static bool8 SetDiveWarp(u8 dir, u16 x, u16 y);
bool8 SetDiveWarpEmerge(u16 x, u16 y);
bool8 SetDiveWarpDive(u16 x, u16 y);
void mliX_load_map(u8 mapGroup, u8 mapNum);
@@ -98,7 +91,7 @@ void Overworld_ClearSavedMusic(void);
void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16 newMusic);
u8 GetMapMusicFadeoutSpeed(void);
-void music_something(void);
+void TryFadeOutOldMapMusic(void);
bool8 BGMusicStopped(void);
void Overworld_FadeOutMapMusic(void);
void UpdateAmbientCry(s16 *state, u16 *delayCounter);
diff --git a/include/pokedex.h b/include/pokedex.h
index 11e39997c..b6d323fd3 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -4,12 +4,14 @@
extern u8 gUnknown_030060B0;
extern void (*gUnknown_030060B4)(void);
-void ResetPokedex(void);
-void CopyMonCategoryText(u32 species, u8 *dst);
-u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
-u16 GetNationalPokedexCount(u8);
-u16 GetHoennPokedexCount(u8);
-u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
+#define HOENN_DEX_COUNT 202
+#define NATIONAL_DEX_COUNT 386
+
+enum
+{
+ DEX_MODE_HOENN,
+ DEX_MODE_NATIONAL
+};
enum
{
@@ -19,7 +21,25 @@ enum
FLAG_SET_CAUGHT
};
+struct PokedexEntry
+{
+ /*0x00*/ u8 categoryName[12];
+ /*0x0C*/ u16 height; //in decimeters
+ /*0x0E*/ u16 weight; //in hectograms
+ /*0x10*/ const u8 *description;
+ /*0x14*/ u16 unused;
+ /*0x16*/ u16 pokemonScale;
+ /*0x18*/ u16 pokemonOffset;
+ /*0x1A*/ u16 trainerScale;
+ /*0x1C*/ u16 trainerOffset;
+}; /*size = 0x20*/
+
+void ResetPokedex(void);
+u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
+u16 GetNationalPokedexCount(u8);
+u16 GetHoennPokedexCount(u8);
+u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
-u16 sub_80C0E9C(u16, s16, s16, u16);
+u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h
index 2fb5ade51..027d3e4a7 100755
--- a/include/pokedex_area_screen.h
+++ b/include/pokedex_area_screen.h
@@ -1,6 +1,6 @@
#ifndef GUARD_POKEDEX_AREA_SCREEN_H
#define GUARD_POKEDEX_AREA_SCREEN_H
-void sub_813D3D8(u16, u8*);
+void ShowPokedexAreaScreen(u16, u8*);
#endif // GUARD_POKEDEX_AREA_SCREEN_H
diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h
index 6b5cc13f2..392e80a6d 100755
--- a/include/pokedex_cry_screen.h
+++ b/include/pokedex_cry_screen.h
@@ -13,7 +13,7 @@ struct CryRelatedStruct
bool8 sub_8145354(struct CryRelatedStruct*, u8);
void sub_814545C(u8);
void sub_8145534(u16);
-void sub_8145914(void);
bool8 sub_8145850(struct CryRelatedStruct*, u8);
+void sub_8145914(void);
#endif
diff --git a/include/pokemon.h b/include/pokemon.h
index 5d7f7f2ae..94dae089f 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -460,11 +460,11 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
-void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
-void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
+void sub_806819C(struct Pokemon *mon, struct BattleTowerPokemon *src);
+void sub_8068338(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50);
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
-void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
+void sub_80686FC(struct Pokemon *mon, struct BattleTowerPokemon *dest);
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
bool8 sub_80688F8(u8 caseId, u8 battlerId);
void SetDeoxysStats(void);
@@ -566,7 +566,7 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
u16 SpeciesToPokedexNum(u16 species);
-bool32 sub_806E3F8(u16 species);
+bool32 IsSpeciesInHoennDex(u16 species);
void ClearBattleMonForms(void);
u16 GetBattleBGM(void);
void PlayBattleBGM(void);
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index a8eee9c18..5dc37c70d 100755
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -17,10 +17,10 @@ enum PokemonSummaryScreenMode
enum PokemonSummaryScreenPage
{
- PSS_PAGE_INFO,
- PSS_PAGE_SKILLS,
- PSS_PAGE_BATTLE_MOVES,
- PSS_PAGE_CONTEST_MOVES,
+ PSS_PAGE_INFO,
+ PSS_PAGE_SKILLS,
+ PSS_PAGE_BATTLE_MOVES,
+ PSS_PAGE_CONTEST_MOVES,
};
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/region_map.h b/include/region_map.h
index 6339f7a88..0c82232cf 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -78,6 +78,15 @@ struct RegionMap {
/*0x284*/ u8 cursorLargeImage[0x600];
}; // size = 0x884
+struct RegionMapLocation
+{
+ u8 x;
+ u8 y;
+ u8 width;
+ u8 height;
+ const u8 *name;
+};
+
// Exported RAM declarations
// Exported ROM declarations
@@ -95,5 +104,10 @@ u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
u8 *sub_81245DC(u8 *dest, u16 mapSecId);
u8 *sub_8124610(u8 *dest, u16 mapSecId);
+u16 CorrectSpecialMapSecId(u16 mapSecId);
+void sub_8122D88(struct RegionMap *regionMap);
+void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y);
+
+extern const struct RegionMapLocation gRegionMapEntries[];
#endif //GUARD_REGION_MAP_H
diff --git a/include/roulette.h b/include/roulette.h
new file mode 100755
index 000000000..71100d0d3
--- /dev/null
+++ b/include/roulette.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_ROULETTE_H
+#define GUARD_ROULETTE_H
+
+struct UnkStruct1
+{
+ u16 var00;
+ u16 var02;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ s8 var07_0:5;
+ s8 var07_5:2;
+ s8 var07_7:1;
+};
+
+struct UnkStruct3
+{
+ u8 var00_0:7;
+ u8 var00_7:1;
+ u8 var01;
+ s8 var02;
+ s8 var03;
+ struct UnkStruct1 var04;
+};
+
+struct UnkStruct0
+{
+ u8 var00;
+ u8 var01;
+ u16 var02; //flag for each UnkStruct3
+ struct UnkStruct3 var04[0x10];
+};
+
+#endif // GUARD_ROULETTE_H
diff --git a/include/roulette_util.h b/include/roulette_util.h
index f59c4e44c..964f551fe 100644
--- a/include/roulette_util.h
+++ b/include/roulette_util.h
@@ -1,17 +1,46 @@
#ifndef GUARD_ROULETTE_UTIL_H
#define GUARD_ROULETTE_UTIL_H
+struct InnerStruct203CF18_3
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ s8 unk7_0:4;
+ s8 unk7_4:2;
+ s8 unk7_6:1;
+ s8 unk7_7:1;
+};
+
+struct InnerStruct203CF18_2
+{
+ u8 unk0;
+ u8 unk1_0:4;
+ u8 unk1_4:1;
+ s8 unk1_5:1;
+ s8 unk1_6:1;
+ u32 unk1_7:1;
+ u8 unk2;
+ u8 unk3;
+ struct InnerStruct203CF18_3 unk4;
+};
+
// structures
struct InnerStruct203CF18
{
- u8 filler[0xC4];
+ u16 unk0;
+ struct InnerStruct203CF18_2 unk4[16];
};
-void sub_8151B68(struct InnerStruct203CF18 *, const u8*);
+int sub_8151B68(struct InnerStruct203CF18 *, const struct InnerStruct203CF18_3 *);
void sub_8151B3C(struct InnerStruct203CF18 *);
-void sub_8151CA8(struct InnerStruct203CF18 *, u8, u8);
-void sub_8151C50(struct InnerStruct203CF18 *, u8, u8);
-void sub_8151D28(struct InnerStruct203CF18 *, u8, u8);
+void sub_8151CA8(struct InnerStruct203CF18 *, u16, u8);
+void sub_8151C50(struct InnerStruct203CF18 *, u16, u8);
+void sub_8151D28(struct InnerStruct203CF18 *, u16, u8);
void sub_8151E50(struct InnerStruct203CF18 *);
+void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
+void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
#endif // GUARD_ROULETTE_UTIL_H
diff --git a/include/save.h b/include/save.h
index b151f1064..42ce8b3f3 100644
--- a/include/save.h
+++ b/include/save.h
@@ -25,8 +25,8 @@ struct UnkSaveSection
struct SaveSectionOffsets
{
- u16 toAdd;
- u16 size;
+ u16 toAdd;
+ u16 size;
};
// Emerald changes this definition to be the sectors per slot.
@@ -48,7 +48,7 @@ enum
SAVE_NORMAL,
SAVE_LINK,
//EREADER_SAVE, // deprecated in Emerald
- SAVE_LINK2, // unknown 2nd link save
+ SAVE_LINK2, // unknown 2nd link save
SAVE_HALL_OF_FAME,
SAVE_OVERWRITE_DIFFERENT_FILE,
SAVE_HALL_OF_FAME_ERASE_BEFORE // unused
diff --git a/include/shop.h b/include/shop.h
index 7f2d877dc..1e4ffdb5c 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -17,7 +17,7 @@ enum
X_COORD,
Y_COORD,
ANIM_NUM,
- LAYER_TYPE
+ LAYER_TYPE
};
struct MartInfo
@@ -32,16 +32,16 @@ struct MartInfo
struct ShopData
{
- /*0x0000*/ u16 tilemapBuffers[4][0x400];
- /*0x2000*/ u32 totalCost;
- /*0x2004*/ u16 itemsShowed;
- /*0x2006*/ u16 selectedRow;
- /*0x2008*/ u16 scrollOffset;
- /*0x200A*/ u8 maxQuantity;
- /*0x200B*/ u8 scrollIndicatorsTaskId;
- /*0x200C*/ u8 iconSlot;
- /*0x200D*/ u8 itemSpriteIds[2];
- /*0x2010*/ s16 viewportObjects[16][5];
+ /*0x0000*/ u16 tilemapBuffers[4][0x400];
+ /*0x2000*/ u32 totalCost;
+ /*0x2004*/ u16 itemsShowed;
+ /*0x2006*/ u16 selectedRow;
+ /*0x2008*/ u16 scrollOffset;
+ /*0x200A*/ u8 maxQuantity;
+ /*0x200B*/ u8 scrollIndicatorsTaskId;
+ /*0x200C*/ u8 iconSlot;
+ /*0x200D*/ u8 itemSpriteIds[2];
+ /*0x2010*/ s16 viewportObjects[16][5];
};
void CreatePokemartMenu(const u16 *);
diff --git a/include/string_util.h b/include/string_util.h
index 67149bca0..d7a005ec5 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -39,7 +39,6 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
bool32 IsStringJapanese(u8 *str);
bool32 sub_800924C(u8 *str, s32 n);
u8 GetExtCtrlCodeLength(u8 code);
-static const u8 *SkipExtCtrlCode(const u8 *s);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
void ConvertInternationalString(u8 *s, u8 language);
void StripExtCtrlCodes(u8 *str);
diff --git a/include/strings.h b/include/strings.h
index fcb2521be..02eaeb19f 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1002,44 +1002,44 @@ extern const u8 gUnknown_085E8840[];
extern const u8 gUnknown_085E887C[];
extern const u8 gUnknown_085E88A6[];
extern const u8 gUnknown_085E88C8[];
-extern const u8 gUnknown_085E88DF[];
-extern const u8 gUnknown_085E88E9[];
-extern const u8 gUnknown_085E88F6[];
-extern const u8 gUnknown_085E8905[];
-extern const u8 gUnknown_085E8911[];
-extern const u8 gUnknown_085E891F[];
-extern const u8 gUnknown_085E892D[];
-extern const u8 gUnknown_085E893A[];
-extern const u8 gUnknown_085E8948[];
-extern const u8 gUnknown_085E894C[];
-extern const u8 gUnknown_085E8950[];
-extern const u8 gUnknown_085E8954[];
-extern const u8 gUnknown_085E8958[];
-extern const u8 gUnknown_085E895C[];
-extern const u8 gUnknown_085E8960[];
-extern const u8 gUnknown_085E8964[];
-extern const u8 gUnknown_085E8968[];
-extern const u8 gUnknown_085E896B[];
-extern const u8 gUnknown_085E896F[];
-extern const u8 gUnknown_085E8974[];
-extern const u8 gUnknown_085E897B[];
-extern const u8 gUnknown_085E8981[];
-extern const u8 gUnknown_085E8987[];
-extern const u8 gUnknown_085E898D[];
-extern const u8 gUnknown_085E8994[];
-extern const u8 gUnknown_085E8999[];
-extern const u8 gUnknown_085E899F[];
-extern const u8 gUnknown_085E89A4[];
-extern const u8 gUnknown_085E89BB[];
-extern const u8 gUnknown_085E89D4[];
-extern const u8 gUnknown_085E8A02[];
-extern const u8 gUnknown_085E8A37[];
-extern const u8 gUnknown_085E8A73[];
-extern const u8 gUnknown_085E8AAF[];
-extern const u8 gUnknown_085E8AEA[];
-extern const u8 gUnknown_085E8B25[];
-extern const u8 gUnknown_085E8B26[];
-extern const u8 gUnknown_085E8B35[];
+extern const u8 gText_DexHoennTitle[];
+extern const u8 gText_DexNatTitle[];
+extern const u8 gText_DexSortNumericalTitle[];
+extern const u8 gText_DexSortAtoZTitle[];
+extern const u8 gText_DexSortHeaviestTitle[];
+extern const u8 gText_DexSortLightestTitle[];
+extern const u8 gText_DexSortTallestTitle[];
+extern const u8 gText_DexSortSmallestTitle[];
+extern const u8 gText_DexSearchAlphaABC[];
+extern const u8 gText_DexSearchAlphaDEF[];
+extern const u8 gText_DexSearchAlphaGHI[];
+extern const u8 gText_DexSearchAlphaJKL[];
+extern const u8 gText_DexSearchAlphaMNO[];
+extern const u8 gText_DexSearchAlphaPQR[];
+extern const u8 gText_DexSearchAlphaSTU[];
+extern const u8 gText_DexSearchAlphaVWX[];
+extern const u8 gText_DexSearchAlphaYZ[];
+extern const u8 gText_DexSearchColorRed[];
+extern const u8 gText_DexSearchColorBlue[];
+extern const u8 gText_DexSearchColorYellow[];
+extern const u8 gText_DexSearchColorGreen[];
+extern const u8 gText_DexSearchColorBlack[];
+extern const u8 gText_DexSearchColorBrown[];
+extern const u8 gText_DexSearchColorPurple[];
+extern const u8 gText_DexSearchColorGray[];
+extern const u8 gText_DexSearchColorWhite[];
+extern const u8 gText_DexSearchColorPink[];
+extern const u8 gText_DexHoennDescription[];
+extern const u8 gText_DexNatDescription[];
+extern const u8 gText_DexSortNumericalDescription[];
+extern const u8 gText_DexSortAtoZDescription[];
+extern const u8 gText_DexSortHeaviestDescription[];
+extern const u8 gText_DexSortLightestDescription[];
+extern const u8 gText_DexSortTallestDescription[];
+extern const u8 gText_DexSortSmallestDescription[];
+extern const u8 gText_DexEmptyString[];
+extern const u8 gText_DexSearchDontSpecify[];
+extern const u8 gText_DexSearchTypeNone[];
extern const u8 gUnknown_085EAEC3[];
extern const u8 gUnknown_085EAED6[];
@@ -1228,9 +1228,514 @@ extern const u8 gText_SpaceAndSpace[];
extern const u8 gText_CommaSpace[];
extern const u8 gText_NewLine[];
extern const u8 gText_ScrollTextUp[];
+extern const u8 gText_Space[];
extern const u8 gText_Space2[];
extern const u8 gText_Are[];
extern const u8 gText_Are2[];
extern const u8 gText_123Dot[][3];
+// Frontier util.
+extern const u8 gUnknown_085ED164[];
+extern const u8 gUnknown_085ED170[];
+extern const u8 gUnknown_085ED17C[];
+extern const u8 gUnknown_085ED188[];
+extern const u8 gUnknown_085ED190[];
+
+extern const u8 gText_RecordsLv50[];
+extern const u8 gText_RecordsOpenLevel[];
+extern const u8 gText_FrontierFacilityWinStreak[];
+extern const u8 gText_FrontierFacilityClearStreak[];
+extern const u8 gText_FrontierFacilityRoomsCleared[];
+extern const u8 gText_FrontierFacilityKOsStreak[];
+extern const u8 gText_FrontierFacilityFloorsCleared[];
+
+extern const u8 gText_082C843F[];
+extern const u8 gText_082C848B[];
+extern const u8 gText_082C8628[];
+extern const u8 gText_082C85B4[];
+extern const u8 gText_082C8512[];
+extern const u8 gText_082C859D[];
+extern const u8 gText_082C86C3[];
+extern const u8 gText_082C8458[];
+extern const u8 gText_082C84C1[];
+extern const u8 gText_082C8662[];
+extern const u8 gText_082C85E3[];
+extern const u8 gText_082C853B[];
+extern const u8 gText_082C85A4[];
+extern const u8 gText_082C86FE[];
+extern const u8 gText_082C846C[];
+extern const u8 gText_082C84D0[];
+extern const u8 gText_082C8682[];
+extern const u8 gText_082C85F5[];
+extern const u8 gText_082C8561[];
+extern const u8 gText_082C85A9[];
+extern const u8 gText_082C8739[];
+extern const u8 gText_082C8480[];
+extern const u8 gText_082C84F7[];
+extern const u8 gText_082C86B3[];
+extern const u8 gText_082C8611[];
+extern const u8 gText_082C8589[];
+extern const u8 gText_082C85AE[];
+extern const u8 gText_082C877B[];
+
+// Battle Tower.
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2479CE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248297[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2444D6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24459B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2448CD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24529A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245CAC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245E20[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245FC6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247749[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2453B4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2476ED[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246864[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247F3F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2484AC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248661[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2486FF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2469B4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246D9E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244A23[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246662[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248321[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244F4F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247B16[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2465B5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2481E1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247E7E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244549[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246244[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2468A7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2468FE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245A5F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24626E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244383[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246BE9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2462E4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246F7B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247268[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244643[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247EE9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246D3F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247AA1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246D6A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245D4B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247348[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24522F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24617D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244989[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2470FD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247C4E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24754A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247C8C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248467[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2474AF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245BBD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24503D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248AC0[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24614A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244E5B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245F2B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248553[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246741[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245656[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2480AB[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248725[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244939[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2471FB[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247291[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24589C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247B3E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248614[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2448F5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2445C5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247B62[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24777A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2455EC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248031[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244AA9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245464[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2484E7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247313[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247470[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244D82[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246529[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247238[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247A18[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24597F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247DFE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247FB7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246E64[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247655[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244E7E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245535[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246FCC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2482DC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24808D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246AF7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24864E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247991[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246605[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248B4C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2448A7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245C05[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2456F5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246020[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24670A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24694B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2471C7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248C5B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246449[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2452EF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245B91[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245F87[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246831[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247854[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244D07[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246051[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2486C6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248401[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2450E6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248671[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2454D6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24662A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246EB6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244FD3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247484[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2460D5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24622A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244DC6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2485E5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248BB4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246DD3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244B52[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24896F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247629[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2454A3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2459BE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244413[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248C90[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2446B4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244C18[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24610D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24838D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24633C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24758B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2458CE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246E1A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247EA1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248369[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245DC7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247D97[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2483C1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248892[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2488D8[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247889[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24895F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2449E6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248781[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246F21[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24707D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24818E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24568A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248A10[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246791[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246571[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246A4E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248431[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2462AA[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246B3F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2473C6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2473FB[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245CE6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2445E8[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2487C9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245D60[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24795F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245B79[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247B9B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246B2B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24451E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247807[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24636B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247DC7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246002[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247838[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248151[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24718D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2481A9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247942[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244D36[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246D2D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248751[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247D07[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246B6B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244F98[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246BB2[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24705B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248BEE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24716C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2489BD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245D07[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247724[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248908[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244618[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24468F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244C6E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246E39[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24856A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24894B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24824F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245C66[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246C22[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2467C4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245406[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24737A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2474EC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247FE9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247C23[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2480DC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24857D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248B39[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245E41[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245E78[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247D4E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24615D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248517[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245087[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2463C5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247AE3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245EEC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24885B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2470B2[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248B22[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2467E6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24833D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248C2E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248221[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245196[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245740[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24480C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246A22[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24555F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24712A[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247A76[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247CB2[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2457D9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248128[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24631F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246CE9[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2482B1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244DFE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247013[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24790D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24581F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247A51[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24479E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2461C7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244ECA[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2466E6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2477CE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245C2D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2487F7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2489E7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2478DD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248477[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244CD6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2466B4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24805E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247E3E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245923[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248829[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2461F5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24751D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2475BC[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245013[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2475D5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246C35[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246686[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247438[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245D8D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247EB5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246F4C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2450C0[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245DF0[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24755C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24474D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2444EF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246082[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2464EE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2467FF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244EF4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247BE7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245EBD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24697C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246A85[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245F58[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245851[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248A72[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2459F7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2443E7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245B3E[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248CCF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24444B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245C7F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246C6C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2472C7[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_245AB4[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24769B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248A40[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244BD2[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246760[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246CB3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247FA3[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_247F6D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248D04[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2463FF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246EEE[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244B93[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2446E5[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2469F1[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2451BD[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_244AD6[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24738F[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_248AEB[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246478[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24760D[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24658C[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24692B[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246ACF[];
+extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24649D[];
+
+// Battle Pyramid.
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D2D[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D57[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D81[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DAB[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25330B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2532CC[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25328B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253248[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253206[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2531C4[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253183[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253140[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530FD[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544A6[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25445A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25440B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2543BA[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25436A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25431A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2542CB[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25427A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DD5[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E03[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E31[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E5F[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25362E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2535D4[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253578[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25351A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2534BD[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253460[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253404[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2533A6[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25334D[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25471E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2546CC[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25467C[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25462A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2545D9[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254588[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254538[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544E6[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E8D[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EAA[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EC7[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EE4[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2539EC[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253980[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253915[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2538A8[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25383C[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2537D0[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253765[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2536F8[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25368B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A0B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2549AE[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25494D[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2548EB[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25488A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254829[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2547C9[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254767[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F01[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F3A[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F73[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FAC[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D3E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253CE0[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C87[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C2C[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253BD2[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B78[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B1F[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253AC4[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253A69[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C3E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BF1[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BAE[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B69[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B25[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254AE1[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A9E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A59[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FE5[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253000[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25301B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253036[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F6C[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F34[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EFA[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EBE[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E83[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E48[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E0E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253DD2[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D96[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E6E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E27[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254DE0[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D97[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D4F[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D07[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254CC0[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C77[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253051[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25307C[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530A7[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530D2[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25422B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2541DD[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25418D[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25413B[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2540EA[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254099[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254049[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FF7[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FA5[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_255068[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25502F[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FF6[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FBB[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F81[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F47[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F0E[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254ED3[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index 27a6364bb..69cbb87ed 100644
--- a/include/text.h
+++ b/include/text.h
@@ -89,6 +89,13 @@
#define EXT_CTRL_CODE_COLOR 0x1
#define EXT_CTRL_CODE_HIGHLIGHT 0x2
#define EXT_CTRL_CODE_SHADOW 0x3
+//
+#define EXT_CTRL_CODE_UNKNOWN_7 0x7
+//
+#define EXT_CTRL_CODE_CLEAR 0x11
+//
+#define EXT_CTRL_CODE_JPN 0x15
+#define EXT_CTRL_CODE_ENG 0x16
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
@@ -102,9 +109,6 @@
// battle placeholders are located in battle_message.h
-#define EXT_CTRL_CODE_JPN 0x15
-#define EXT_CTRL_CODE_ENG 0x16
-
#define NUM_TEXT_PRINTERS 32
#define TEXT_SPEED_FF 0xFF
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 43f8b82d2..a9b92d71b 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -19,7 +19,7 @@ extern u8 gApproachingTrainerId;
bool8 CheckForTrainersWantingBattle(void);
void sub_80B4578(struct EventObject *var);
void EndTrainerApproach(void);
-void sub_80B45D0(void);
+void TryPrepareSecondApproachingTrainer(void);
u8 FldEff_ExclamationMarkIcon(void);
u8 FldEff_QuestionMarkIcon(void);
u8 FldEff_HeartIcon(void);
diff --git a/include/unk_pokedex_area_screen_helper.h b/include/unk_pokedex_area_screen_helper.h
new file mode 100755
index 000000000..45beed70e
--- /dev/null
+++ b/include/unk_pokedex_area_screen_helper.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
+#define GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
+
+struct UnkStruct_1C4D70
+{
+ u32 bg:2;
+ u32 unk2:8;
+ u32 unk10:2;
+ u32 unk12:20;
+};
+
+void sub_81C4D70(const struct UnkStruct_1C4D70 *);
+bool32 sub_81C4E90(void);
+void sub_81C4ED0(u32);
+void sub_81C4EB4(void);
+
+#endif // GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H