summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h2
-rw-r--r--include/battle_interface.h2
-rw-r--r--include/battle_party_menu.h3
-rw-r--r--include/choose_party.h10
-rw-r--r--include/global.berry.h46
-rw-r--r--include/items.h3
-rw-r--r--include/menu.h3
-rw-r--r--include/party_menu.h173
-rw-r--r--include/pokemon.h8
-rw-r--r--include/pokemon_icon.h8
-rw-r--r--include/pokemon_menu.h6
-rw-r--r--include/script_pokemon_80F9.h6
-rw-r--r--include/sprite.h2
-rw-r--r--include/trade.h6
14 files changed, 171 insertions, 107 deletions
diff --git a/include/battle.h b/include/battle.h
index 7850a9dd6..f973849b7 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -19,6 +19,8 @@
#define BATTLE_TYPE_LEGENDARY 0x2000
#define BATTLE_TYPE_REGI 0x4000
+#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE)
+
#define BATTLE_WON 0x1
#define BATTLE_LOST 0x2
#define BATTLE_DREW 0x3
diff --git a/include/battle_interface.h b/include/battle_interface.h
index 8230c7502..db41ee735 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -29,7 +29,7 @@ u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8);
void sub_8044CA0(u8);
void sub_8045A5C(u8, struct Pokemon *, u8);
s32 sub_8045C78(u8, u8, u8, u8);
-s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int);
+s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, u16 *, int);
u8 GetScaledHPFraction(s16, s16, u8);
u8 GetHPBarLevel(s16, s16);
void sub_80440EC(u8 a, s16 b, u8 c);
diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h
index 71bd2cf51..200b0c653 100644
--- a/include/battle_party_menu.h
+++ b/include/battle_party_menu.h
@@ -4,6 +4,7 @@
extern u8 unk_2000000[];
#define EWRAM_1609D unk_2000000[0x1609D]
-void SetUpBattlePokemonMenu(u8);
+void HandleBattlePartyMenu(u8);
+bool8 SetUpBattlePartyMenu(void);
#endif
diff --git a/include/choose_party.h b/include/choose_party.h
index e31aa3c02..853202a89 100644
--- a/include/choose_party.h
+++ b/include/choose_party.h
@@ -3,11 +3,11 @@
void sub_8121E10(void);
void sub_8121E34(void);
-bool8 sub_8121E78(void);
-void sub_81222B0(u8 taskId);
-bool8 sub_8122854(void);
-void sub_8122A48(u8 taskId);
-void sub_8122E0C(u8 taskId);
+bool8 SetupBattleTowerPartyMenu(void);
+void HandleBattleTowerPartyMenu(u8 taskId);
+bool8 SetupLinkMultiBattlePartyMenu(void);
+void HandleLinkMultiBattlePartyMenu(u8 taskId);
+void HandleDaycarePartyMenu(u8 taskId);
void sub_8123138(u8 taskId);
#endif // GUARD_CHOOSE_PARTY_H
diff --git a/include/global.berry.h b/include/global.berry.h
index 6632e55e2..096d8b1d8 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -3,33 +3,33 @@
struct Berry
{
- const u8 name[7];
- u8 firmness;
- u16 size;
- u8 maxYield;
- u8 minYield;
- const u8 *description1;
- const u8 *description2;
- u8 stageDuration;
- u8 spicy;
- u8 dry;
- u8 sweet;
- u8 bitter;
- u8 sour;
- u8 smoothness;
+ /*0x00*/const u8 name[7];
+ /*0x07*/u8 firmness;
+ /*0x08*/u16 size;
+ /*0x0A*/u8 maxYield;
+ /*0x0B*/u8 minYield;
+ /*0x0C*/const u8 *description1;
+ /*0x10*/const u8 *description2;
+ /*0x14*/u8 stageDuration;
+ /*0x15*/u8 spicy;
+ /*0x16*/u8 dry;
+ /*0x17*/u8 sweet;
+ /*0x18*/u8 bitter;
+ /*0x19*/u8 sour;
+ /*0x1A*/u8 smoothness;
};
struct EnigmaBerry
{
- struct Berry berry;
- u8 pic[(6 * 6) * TILE_SIZE_4BPP];
- u16 palette[16];
- u8 description1[45];
- u8 description2[45];
- u8 itemEffect[18];
- u8 holdEffect;
- u8 holdEffectParam;
- u32 checksum;
+ /*0x000*/struct Berry berry;
+ /*0x01B*/u8 pic[(6 * 6) * TILE_SIZE_4BPP];
+ /*0x49C*/u16 palette[16];
+ /*0x4BC*/u8 description1[45];
+ /*0x4E9*/u8 description2[45];
+ /*0x516*/u8 itemEffect[18];
+ /*0x528*/u8 holdEffect;
+ /*0x529*/u8 holdEffectParam;
+ /*0x52C*/u32 checksum;
};
struct BattleEnigmaBerry
diff --git a/include/items.h b/include/items.h
index 69515f18e..44b0f2013 100644
--- a/include/items.h
+++ b/include/items.h
@@ -386,4 +386,7 @@ enum
ITEM_OLD_SEA_MAP, // 0x178
};
+#define NUM_TECHNICAL_MACHINES 50
+#define NUM_HIDDEN_MACHINES 8
+
#endif // GUARD_ITEMS_H
diff --git a/include/menu.h b/include/menu.h
index 3cf47b9b8..9a5ca62a0 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,6 +1,7 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "task.h"
#include "text.h"
struct MenuAction
@@ -12,7 +13,7 @@ struct MenuAction
struct MenuAction2
{
const u8 *text;
- void (*func)(u8);
+ TaskFunc func;
};
extern const struct MenuAction gMenuYesNoItems[];
diff --git a/include/party_menu.h b/include/party_menu.h
index e3f5c62f3..f13c2c2df 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,36 +1,53 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
+#include "menu.h"
#include "task.h"
-struct PartyMenuItem
+
+enum
+{
+ PARTY_MENU_TYPE_STANDARD,
+ PARTY_MENU_TYPE_BATTLE,
+ PARTY_MENU_TYPE_CONTEST,
+ PARTY_MENU_TYPE_IN_GAME_TRADE,
+ PARTY_MENU_TYPE_BATTLE_TOWER,
+ PARTY_MENU_TYPE_LINK_MULTI_BATTLE,
+ PARTY_MENU_TYPE_DAYCARE,
+ PARTY_MENU_TYPE_MOVE_TUTOR,
+};
+
+// The party menu screen is presented differently depending on which menu layout is set.
+enum
{
- const u8 *text;
- TaskFunc func;
+ PARTY_MENU_LAYOUT_STANDARD,
+ PARTY_MENU_LAYOUT_DOUBLE_BATTLE,
+ PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE,
+ PARTY_MENU_LAYOUT_MULTI_BATTLE,
};
struct PartyPopupMenu
{
- u8 unk0;
- u8 unk1;
- const u8 *unk4;
+ /*0x0*/u8 numChoices; // number of menu choices
+ /*0x1*/u8 width; // menu width (number of characters it can fit horizontally)
+ /*0x4*/const u8 *items; // menu item ids (ids for a MenuAction2 array)
};
// TODO: Unify these two structs
-#define DATA_COUNT (6)
struct Unk201B000
{
- //u8 filler0[0x260];
struct Pokemon unk0[6];
- u8 filler258[1];
- u8 unk259;
- u8 filler25A[6];
- u8 unk260;
+ u8 menuType;
+ u8 promptTextId;
+ u8 filler25A[2];
+ TaskFunc menuHandler;
+ u8 menuHandlerTaskId;
u8 unk261;
u8 unk262;
u8 unk263;
- s16 unk264[DATA_COUNT * 2]; // This may be a union
+ // Stat growth upon level-up. First 6 bytes = old stats, Second 6 bytes = new stats.
+ s16 statGrowths[NUM_STATS * 2];
u8 filler27C[2];
s16 unk27E;
s16 unk280;
@@ -40,14 +57,15 @@ struct Unk201B000
struct Struct201B000
{
u8 filler0[0x259];
- u8 unk259;
+ u8 promptTextId;
u8 filler25A[6];
- u8 unk260;
+ u8 menuHandlerTaskId;
u8 unk261;
u8 unk262;
- s16 unk264;
- s16 unk266;
- u8 filler268[10];
+ s16 setupState;
+ s16 monIndex;
+ s16 unk268;
+ u8 filler26A[8];
u16 unk272;
u8 filler274[14];
u16 unk282;
@@ -63,72 +81,93 @@ struct Unk2001000
u8 unk5;
u8 unk6;
u8 unk7;
- u8 unk8;
- u8 unk9;
- u8 unkA;
- u8 unkB;
- void* unkC;
+ s16 unk8;
+ s16 unkA;
+ TaskFunc unkC;
u16 array[53561];
};
+struct UnknownPokemonStruct2
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 heldItem;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 level;
+ /*0x10*/ u16 hp;
+ /*0x12*/ u16 maxhp;
+ /*0x14*/ u32 status;
+ /*0x18*/ u32 personality;
+ /*0x1C*/ u8 gender;
+ /*0x1D*/ u8 language;
+};
+
extern u8 ewram[];
#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000))
#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
#define EWRAM_1B000 ewram1B000_alt
-void sub_806AEDC(void);
-void sub_806AF4C(u8 arg0, u8 arg1, void* arg2, u8 arg3);
-void OpenPartyMenu(u8, u8);
-void OpenPartyMenu();
-bool8 sub_806B124(void);
-u8 IsLinkDoubleBattle(void);
-u8 sub_806B58C(u8);
-u8 sub_806B58C(u8);
+void CB2_PartyMenuMain(void);
+void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed);
+void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId);
+void OpenPartyMenu(u8 menuType, u8 battleFlags);
+bool8 InitPartyMenu(void);
+bool8 IsLinkDoubleBattle(void);
+u8 DrawPartyMonBackground(u8);
+void sub_806B908(void);
void sub_806BC3C(u8, u8);
+void sub_806BCE8(void);
u8 sub_806BD58(u8, u8);
u8 sub_806BD58(u8, u8);
-u16 sub_806BD80(u8);
-void task_pc_turn_off();
-void sub_806BF74(u8 arg0, u8 arg1);
-void sub_806C994(u8 arg0, u8 arg1);
+u16 HandleDefaultPartyMenuInput(u8 taskId);
+u16 HandleBattleTowerPartyMenuInput(u8 taskId);
+void task_pc_turn_off(const u8 *a, u8 b);
+void ChangePartyMenuSelection(u8 taskId, s8 directionPressed);
+void SelectBattleTowerOKButton(u8 taskId);
+void sub_806C994(u8 taskId, u8 b);
u8 sub_806CA38(u8 taskID);
-void sub_806CB74(u8 taskId);
+void HandlePartyMenuSwitchPokemonInput(u8 taskId);
void sub_806CCE4(void);
void sub_806CD44(u8 taskId);
-void sub_806D538(u8 arg0, u8 arg1);
+void sub_806D3B4(u8 taskId, u16 species1, u16 species2);
+void sub_806D4AC(u8 taskId, u16 species, u8 c);
+void sub_806D50C(u8 taskId, u8 monIndex);
+void PrintPartyMenuPromptText(u8 textId, u8 b);
void sub_806D5A4(void);
-void SetMonIconAnim();
-void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
+void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon);
+void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon);
+void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon);
void LoadHeldItemIconGraphics(void);
void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c);
-void CreateHeldItemIcons_806DC34(); // undefined args
-void CreateHeldItemIcons_806DC34();
-void CreateHeldItemIcons(u8 *, u8 *, u8);
-u8 GetMonIconSpriteId_maybe();
-void SetHeldItemIconVisibility();
-void TryPrintPartyMenuMonNickname();
-void PrintPartyMenuMonNicknames(void);
+void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId);
+void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item);
+void CreateHeldItemIcons_806DC34(u8 taskId);
+void CreateHeldItemIcons(u8 *a, u8 *b, u8 c);
+void SetHeldItemIconVisibility(u8 a, u8 monIndex);
+void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
+void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon);
void PrintPartyMenuMonNicknames(void);
-void GetMonNickname(struct Pokemon *mon, u8 *nickname);
-void PartyMenuClearLevelStatusTilemap();
-void PartyMenuPrintMonLevelOrStatus();
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon);
+u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer);
+void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
+void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level);
+void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon);
void PartyMenuPrintMonsLevelOrStatus(void);
-void PartyMenuPrintMonsLevelOrStatus(void);
-void PartyMenuDoPrintHP(u8, int, u16, u16);
+void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname);
+void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP);
void PartyMenuTryPrintMonsHP(void);
void nullsub_13(void);
+void PartyMenuDoDrawHPBar(u8 monIndex, u8 b, u16 currentHP, u16 maxHP);
+void PartyMenuDrawHPBar(u8 monIndex, u8 b, struct Pokemon *pokemon);
+void PartyMenuTryDrawHPBar(u8 monIndex, struct Pokemon *pokemon);
void PartyMenuDrawHPBars(void);
-void sub_806E6F0();
-void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int);
-void sub_806E7D0(u8, const struct PartyPopupMenu *);
-TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8);
-void sub_8070968();
-void sub_8070A20();
-void Task_RareCandy3(u8);
-void sub_8070C54();
-void DoEvolutionStoneItemEffect(u8, u16, TaskFunc);
-u8 GetItemEffectType();
+void SwapPokemon(struct Pokemon *a, struct Pokemon *b);
+void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu);
+void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos);
+void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu);
+TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex);
u8 sub_806E834(const u8 *message, u8 arg1);
void sub_806E8D0(u8 taskId, u16 b, TaskFunc c);
void party_menu_link_mon_held_item_object(u8);
@@ -168,13 +207,19 @@ void DoPPUpItemEffect(u8, u16, TaskFunc);
void DoRareCandyItemEffect(u8, u16, TaskFunc);
void Task_RareCandy1(u8);
void Task_RareCandy2(u8);
-void sub_8070848(u8 taskId);
-void sub_806CA60(u8 taskId);
+void PrintStatGrowthsInLevelUpWindow(u8 taskId);
+void PrintNewStatsInLevelUpWindow(u8 taskId);
+void RedrawPokemonInfoInMenu(u8, struct Pokemon *);
+void Task_RareCandy3(u8);
+void TeachMonMoveInPartyMenu(u8);
+void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c);
+u8 GetItemEffectType(u16 item);
+void SetupDefaultPartyMenuSwitchPokemon(u8 taskId);
void sub_806CD5C(u8 taskId);
void DoTakeMail(u8 taskId, TaskFunc func);
void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func);
void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func);
-void sub_806D668(u8 partyID);
+void sub_806D668(u8 monIndex);
void TaughtMove(u8 taskId);
void StopTryingToTeachMove_806F588(u8 taskId);
diff --git a/include/pokemon.h b/include/pokemon.h
index 76728a5ee..4c3e27609 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -522,7 +522,7 @@ void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
-u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 a2);
+u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
@@ -568,6 +568,8 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality);
+u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
+
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
void MonRestorePP(struct Pokemon *);
@@ -598,7 +600,8 @@ bool8 IsOtherTrainer(u32, u8 *);
void sub_8040B8C(void);
void SetWildMonHeldItem(void);
u8 *sub_8040D08();
-bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
+bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language);
+bool32 ShouldHideGenderIcon(u16 species, u8 *name);
s8 sub_8040A54(struct Pokemon *, u8);
u16 GetMonEVCount(struct Pokemon *);
u16 GetEvolutionTargetSpecies(struct Pokemon *, u8, u16);
@@ -607,4 +610,5 @@ bool8 IsPokeSpriteNotFlipped(u16);
u8 GetLevelUpMovesBySpecies(u16, u16 *);
u8 TryIncrementMonLevel(struct Pokemon *);
+
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 2fbf9f700..7e26c1c9b 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,7 +1,8 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
-u8 CreateMonIcon(u16, void (*callback)(struct Sprite *), s16, s16, bool8, u32);
+u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
+u8 UpdateMonIconFrame(struct Sprite *sprite);
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
u16 GetUnownLetterByPersonality(u32);
u16 sub_809D4A8(u16);
@@ -9,8 +10,7 @@ void sub_809D510(struct Sprite *);
void sub_809D51C(void);
void sub_809D580(u16);
void sub_809D608(u16);
-void UpdateMonIconFrame(struct Sprite *sprite);
-void sub_809D824(struct Sprite *, u8);
-void sub_809D62C(struct Sprite *);
+void sub_809D62C(struct Sprite *sprite);
+void sub_809D824(struct Sprite *sprite, u8 animNum);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h
index 06f905577..57a313d89 100644
--- a/include/pokemon_menu.h
+++ b/include/pokemon_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_MENU_H
#define GUARD_POKEMON_MENU_H
+#include "menu.h"
+
#define POKEMENU_FIRST_FIELD_MOVE_ID 10
enum
@@ -34,9 +36,11 @@ enum
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
+void HandleDefaultPartyMenu(u8 taskID);
void sub_808B5B4(u32 taskID);
void sub_8089A70(void);
-void sub_808A004(u8 taskID);
+void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order);
+void DoPokemonMenu_Switch(u8 taskID);
void FieldCallback_Teleport(void);
void sub_808AD58(void);
void sub_808B020(void);
diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h
index d65c99c15..fa5d57f0e 100644
--- a/include/script_pokemon_80F9.h
+++ b/include/script_pokemon_80F9.h
@@ -9,9 +9,13 @@ struct UnknownStruct2018000
extern struct UnknownStruct2018000 unk_2018000;
-void sub_80F9A8C(u8);
+void OpenPartyMenuFromScriptContext(u8 taskId);
void sub_80F9C00(void);
void sub_80F9E1C(void);
void sub_80F99CC(void);
+void HandleSelectPartyMenu(u8 taskId);
+bool8 SetupContestPartyMenu(void);
+void HandleMoveTutorPartyMenu(u8 taskId);
+bool8 SetupMoveTutorPartyMenu(void);
#endif
diff --git a/include/sprite.h b/include/sprite.h
index 0d84c8127..769e1584d 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -257,7 +257,7 @@ void FreeSpriteTiles(struct Sprite *sprite);
void FreeSpritePalette(struct Sprite *sprite);
void FreeSpriteOamMatrix(struct Sprite *sprite);
void DestroySpriteAndFreeResources(struct Sprite *sprite);
-void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5);
+void DrawPartyMenuMonText(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5);
void AnimateSprite(struct Sprite *sprite);
void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
diff --git a/include/trade.h b/include/trade.h
index 1dd4b53bd..642bdcd65 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -54,9 +54,9 @@ void sub_8047CD8(void);
u16 sub_804DB2C(void);
void sub_804DB68(void);
void sub_804E174(void);
-const u8 gOtherText_MaleSymbol3[2];
-const u8 gOtherText_FemaleSymbol3[2];
-const u8 gOtherText_GenderlessSymbol[2];
+extern const u8 gOtherText_MaleSymbol3[2];
+extern const u8 gOtherText_FemaleSymbol3[2];
+extern const u8 gOtherText_GenderlessSymbol[2];
void sub_804E22C(void);
u16 sub_804D89C(void);