diff options
Diffstat (limited to 'include')
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 |