diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 2 | ||||
-rw-r--r-- | include/battle_interface.h | 2 | ||||
-rw-r--r-- | include/battle_party_menu.h | 3 | ||||
-rw-r--r-- | include/choose_party.h | 10 | ||||
-rw-r--r-- | include/global.berry.h | 46 | ||||
-rw-r--r-- | include/items.h | 3 | ||||
-rw-r--r-- | include/menu.h | 3 | ||||
-rw-r--r-- | include/party_menu.h | 173 | ||||
-rw-r--r-- | include/pokemon.h | 8 | ||||
-rw-r--r-- | include/pokemon_icon.h | 8 | ||||
-rw-r--r-- | include/pokemon_menu.h | 6 | ||||
-rw-r--r-- | include/script_pokemon_80F9.h | 6 | ||||
-rw-r--r-- | include/sprite.h | 2 | ||||
-rw-r--r-- | include/trade.h | 6 |
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); |