summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h5
-rw-r--r--include/battle_anim.h69
-rw-r--r--include/battle_interface.h2
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/contest.h2
-rw-r--r--include/contest_painting.h13
-rwxr-xr-xinclude/contest_painting_effects.h28
-rw-r--r--include/event_scripts.h16
-rw-r--r--include/gba/types.h4
-rw-r--r--include/global.h12
-rw-r--r--include/graphics.h14
-rw-r--r--include/item_menu.h19
-rwxr-xr-xinclude/math_util.h14
-rw-r--r--include/pokemon.h6
-rw-r--r--include/strings.h1
15 files changed, 149 insertions, 58 deletions
diff --git a/include/battle.h b/include/battle.h
index 9e67e8ec5..52c4ee8ae 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -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;
};
@@ -624,7 +623,7 @@ struct BattleHealthboxInfo
u8 battlerBounceSpriteId;
u8 animationState;
u8 field_5;
- u8 field_6;
+ u8 matrixNum;
u8 shadowSpriteId;
u8 field_8;
u8 field_9;
diff --git a/include/battle_anim.h b/include/battle_anim.h
index fa4058c1b..cdeb60e69 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -9,11 +9,11 @@ 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
@@ -67,17 +67,17 @@ 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);
void SetAverageBattlerPositions(u8 battlerId, bool8 a2, s16 *x, s16 *y);
-void move_anim_8074EE0(struct Sprite *sprite);
-void sub_80A656C(struct Sprite *sprite);
+void DestroySpriteAndMatrix(struct Sprite *sprite);
+void TranslateAnimLinearSimple(struct Sprite *sprite);
void InitAnimSpritePos(struct Sprite *sprite, u8 a2);
void sub_80A6980(struct Sprite *sprite, bool8 a2);
void StartAnimLinearTranslation(struct Sprite *sprite);
@@ -88,11 +88,11 @@ void sub_80A8EE4(struct Sprite *sprite);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId);
void sub_80A6FD4(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b);
-void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
-void sub_80A67BC(struct Sprite *sprite);
+void TrySetSpriteRotScale(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
+void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite);
void sub_80A66DC(struct Sprite *sprite);
-void sub_80A6838(struct Sprite *sprite);
-void sub_80A67D8(struct Sprite *sprite);
+void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite);
+void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite);
void sub_80A6864(struct Sprite *sprite, s16 a2);
s16 sub_80A861C(u8 battlerId, u8 a2);
u8 GetBattlerYCoordWithElevation(u8 battlerId);
@@ -101,44 +101,57 @@ void sub_80A7938(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void sub_80A6F98(struct Sprite *sprite);
u8 sub_80A8328(u8 battlerId);
-void *sub_80A8050(s16 bottom, s16 top);
-void sub_80A8048(s16 *bottom, s16 *top, const void *ptr);
+void *LoadPointerFromVars(s16 bottom, s16 top);
+void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
-u8 sub_80A82E4(u8 battlerId);
+u8 GetBattlerSpriteSubpriority(u8 battlerId);
bool8 TranslateAnimArc(struct Sprite *sprite);
void sub_80A6630(struct Sprite *sprite);
void sub_80A6680(struct Sprite *sprite);
-void sub_80A7344(u8 spriteId);
-void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
+void ResetSpriteRotScale(u8 spriteId);
+void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
-void sub_80A7270(u8 spriteId, u8 objMode);
-void sub_80A73A0(u8 spriteId);
+void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
+void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4);
u8 sub_80A77AC(u8 a1);
-s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8);
+s16 CloneBattlerSpriteWithBlend(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
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 TranslateSpriteInGrowingCircleOverDuration(struct Sprite *);
void sub_80A653C(struct Sprite *);
-void sub_80A7E6C(u8 spriteId);
+void SetBattlerSpriteYOffsetFromYScale(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);
+void sub_80A7000(struct Sprite *sprite);
+void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
+void SetGreyscaleOrOriginalPalette(u16 a1, bool8 a2);
+void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
+bool8 RunAffineAnimFromTaskData(struct Task *task);
+void sub_80A78AC(struct Sprite *sprite);
enum
{
BATTLER_COORD_X,
BATTLER_COORD_Y,
BATTLER_COORD_X_2,
- BATTLER_COORD_3,
- BATTLER_COORD_4,
+ BATTLER_COORD_Y_PIC_OFFSET,
+ BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
};
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
@@ -152,7 +165,6 @@ u8 sub_80A8364(u8 battlerId);
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
-u8 sub_80A82E4(u8 battlerId);
u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
// battle_anim_80A9C70.s
@@ -168,8 +180,8 @@ 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);
@@ -223,4 +235,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_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_tower.h b/include/battle_tower.h
index e361b9742..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;
};
diff --git a/include/contest.h b/include/contest.h
index 8790d7371..6ce563b46 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
{
@@ -415,7 +416,6 @@ extern struct ContestResources *gContestResources;
#define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14)
-#define shared19348 (*gContestResources->field_18)
#define shared15800 (gHeap + 0x18000)
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
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_scripts.h b/include/event_scripts.h
index 7f69ef3ae..2661494d3 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -405,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[];
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.h b/include/global.h
index 8395d5943..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
@@ -301,7 +307,7 @@ struct Apprentice
u32 checksum;
};
-struct UnknownPokemonStruct
+struct BattleTowerPokemon
{
u16 species;
u16 heldItem;
@@ -338,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;
};
@@ -353,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;
};
diff --git a/include/graphics.h b/include/graphics.h
index e2889ed86..a7ee286b8 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -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[];
@@ -4371,6 +4372,9 @@ extern const u32 gBattleAnimSpriteSheet_280[];
extern const u32 gBattleAnimSpriteSheet_281[];
extern const u32 gBattleAnimSpriteSheet_282[];
extern const u32 gBattleAnimSpriteSheet_283[];
+extern const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[];
+extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[];
+extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[];
extern const u32 gBattleAnimSpriteSheet_284[];
extern const u32 gBattleAnimSpriteSheet_285[];
@@ -4583,10 +4587,15 @@ extern const u32 gBattleAnimSpritePalette_209[];
extern const u32 gBattleAnimSpritePalette_210[];
extern const u32 gBattleAnimSpritePalette_211[];
extern const u32 gBattleAnimSpritePalette_215[];
+extern const u32 gUnknown_08C249D0[];
+extern const u32 gUnknown_08C249F8[];
extern const u32 gBattleAnimSpritePalette_216[];
extern const u32 gBattleAnimSpritePalette_217[];
extern const u32 gBattleAnimSpritePalette_218[];
extern const u32 gBattleAnimSpritePalette_219[];
+extern const u32 gUnknown_08C232E0;
+extern const u32 gUnknown_08C23D50;
+extern const u32 gUnknown_08C23D78;
extern const u32 gBattleAnimSpritePalette_220[];
extern const u32 gBattleAnimSpritePalette_221[];
extern const u32 gBattleAnimSpritePalette_222[];
@@ -4748,4 +4757,9 @@ 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/item_menu.h b/include/item_menu.h
index 4631382cb..ce439e282 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -32,10 +32,10 @@ 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;
@@ -43,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;
@@ -52,11 +52,11 @@ struct UnkBagStruct
u8 unk825;
u8 filler[2];
u8 unk828;
- u8 unk829[POCKETS_COUNT];
- 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];
};
@@ -71,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/math_util.h b/include/math_util.h
new file mode 100755
index 000000000..6b0d42460
--- /dev/null
+++ b/include/math_util.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_MATH_UTIL_H
+#define GUARD_MATH_UTIL_H
+
+s16 sub_8151534(s16 x, s16 y);
+s16 sub_8151550(u8 s, s16 x, s16 y);
+s32 sub_8151574(s32 x, s32 y);
+s16 sub_81515B0(s16 x, s16 y);
+s16 sub_81515D4(u8 s, s16 x, s16 y);
+s32 sub_81515FC(s32 x, s32 y);
+s16 sub_8151624(s16 y);
+s16 sub_815163C(u8 s, s16 y);
+s32 sub_815165C(s32 y);
+
+#endif // GUARD_MATH_UTIL_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 9b8f1d03f..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);
diff --git a/include/strings.h b/include/strings.h
index f0df4bdec..c780a80b4 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1226,6 +1226,7 @@ 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[];