pokemon.c externs

This commit is contained in:
DizzyEggg
2025-08-30 18:10:12 +02:00
parent 00cb48e6d9
commit d1780e5928
12 changed files with 84 additions and 93 deletions

View File

@@ -37,24 +37,44 @@ extern RecruitedMon *gRecruitedPokemonRef;
void LoadMonsterParameters(void);
RecruitedMon *GetRecruitedPokemon(void);
void InitializeRecruitedPokemon(void);
u8 GetBodySize(s32 index);
void CopyMonsterNameToBuffer(u8 * buffer, s32 index);
void CopyYellowMonsterNametoBuffer(u8 *buffer, s16 index);
void CopyCyanMonsterNametoBuffer(u8 *buffer, s32 index_);
void PrintColoredPokeNameToBuffer(u8 *buffer, Pokemon *pokemon, s32 colorNum);
void sub_808D930(u8 *buffer, s32 index);
void sub_808D9DC(u8 *buffer, DungeonMon *, s32 colorNum);
void sub_808DA0C(u8 *buffer, DungeonMon *);
void sub_808CE74(s16 _species, bool32 _isLeader, u8* name);
void CreateLevel1Pokemon(Pokemon *pokemon, s16 _species, u8* name, u32 _itemID, const DungeonLocation *location, u16 *moves);
void sub_808D0D8(Pokemon *pokemon);
void ConvertStoryMonToPokemon(Pokemon *dst, const struct StoryMonData *src);
Pokemon *TryAddPokemonToRecruited(Pokemon*);
Pokemon *sub_808D278(s32 species);
Pokemon *TryAddLevel1PokemonToRecruited(s32 species, u8 *name, u32 _itemID, const DungeonLocation *location, u16 *moveID);
void sub_808D31C(Pokemon *param_1);
Pokemon *GetPlayerPokemonStruct(void);
Pokemon *sub_808D378(void);
Pokemon *sub_808D3BC(void);
Pokemon *sub_808D3F8(void);
Pokemon *GetRecruitedMonBySpecies(s16 species_, s32 sameSpeciesCounter);
s32 GetFriendSum_808D480(void);
bool8 sub_808D4B0(void);
bool8 sub_808D500(void);
s32 GetUnitSum_808D544(s32 *team);
s32 sub_808D580(s32 *team);
s32 sub_808D654(s32 *ptr);
s32 sub_808D6A4(s32 *ptr);
bool8 sub_808D750(s32 index_);
void PeekPokemonItem(s16 index_, BulkItem* item);
void GivePokemonItem(s16 index_, BulkItem* item);
bool8 IsPokemonRenamed(Pokemon* pokemon);
bool8 CanMonLearnMove(u16 moveID, s16 _species);
u8 *GetCategoryString(s16 index);
u8 GetShadowSize(s16 index);
bool8 ComparePokemonNames(s16, s16);
void CopyMonsterNameToBuffer(u8 * buffer, s32 index);
void CopyYellowMonsterNametoBuffer(u8 *buffer, s16 index);
void CopyCyanMonsterNametoBuffer(u8 *buffer, s32 index_);
void sub_808D930(u8 *buffer, s32 index);
char * GetMonSpecies(s16 index);
void PrintColoredPokeNameToBuffer(u8 *buffer, Pokemon *pokemon, s32 colorNum);
void sub_808D9DC(u8 *buffer, DungeonMon *, s32 colorNum);
void sub_808DA0C(u8 *buffer, DungeonMon *);
void PrintPokeNameToBuffer(u8 *buffer, Pokemon *pokemon);
bool8 sub_808DA44(s32 _species, u32 a2_);
u8 *GetCategoryString(s16 index);
u8 GetBodySize(s32 index);
u8 GetShadowSize(s16 index);
s32 GetMovementSpeed(s16 index);
u8 GetMovementType(s16 index);
u8 GetRegenSpeed(s16 index);
@@ -78,39 +98,26 @@ s16 GetInternalNo(s16 index);
s32 CalculateEXPGain(s16 index, s32 level);
s16 GetPokemonEvolveConditions(s16 index, unkEvolve *r1);
u8 GetPokemonOverworldPalette(s16 index, bool32 recolorShopKecleon);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 spriteId);
OpenedFile *OpenPokemonDialogueSpriteFile(s16 index);
OpenedFile *GetDialogueSpriteDataPtr(s32 index);
s32 GetEvolutionSequence(Pokemon *pokemon, EvolveStage *);
s32 sub_808E400(s32 _species, s16* _a2, bool32 _bodySizeCheck, bool32 _shedinjaCheck);
void sub_808E490(Move* a1, s32 species);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 spriteId);
void RecruitedPokemonToDungeonMon(DungeonMon *dst, u32 recruitedPokemonId);
void PokemonToDungeonMon(DungeonMon *, Pokemon *, s32);
void PokemonToDungeonMon(DungeonMon *dst, Pokemon *src, s32 recruitedPokemonId);
void DungeonMonToRecruitedPokemon(s32 id, DungeonMon* src);
void DungeonMonToPokemon(Pokemon* dst, DungeonMon* src);
s32 sub_808E218(unkStruct_808E218_arg *, Pokemon *pokemon);
void CreateLevel1Pokemon(Pokemon *pokemon, s16 _species, u8* name, u32 _itemID, const DungeonLocation *location, u16 *moves);
void sub_808D0D8(Pokemon *pokemon);
Pokemon *TryAddLevel1PokemonToRecruited(s32 species, u8 *name, u32 _itemID, const DungeonLocation *location, u16 *moveID);
Pokemon *GetPlayerPokemonStruct(void);
Pokemon *TryAddPokemonToRecruited(Pokemon*);
Pokemon *sub_808D378(void);
Pokemon *sub_808D3BC(void);
Pokemon *sub_808D3F8(void);
Pokemon *GetRecruitedMonBySpecies(s16 species_, s32 sameSpeciesCounter);
s32 GetFriendSum_808D480(void);
bool8 sub_808D4B0(void);
bool8 sub_808D500(void);
s32 GetUnitSum_808D544(s32 *);
s32 sub_808D580(s32 *);
bool8 ComparePokemonNames(s16, s16);
void PrintPokeNameToBuffer(u8 *buffer, Pokemon *pokemon);
void sub_808DFDC(s32 a1, DungeonMon* a2);
void GetLvlUpEntry(LevelData* a1, s32 _id, s32 level);
const u8* DecompressMoveID(const u8* a1, u16* moveID);
bool8 sub_808DA44(s32, u32);
void ConvertStoryMonToPokemon(Pokemon *dst, const struct StoryMonData *src);
void sub_808CE74(s16 _species, bool32 _isLeader, u8* name);
Pokemon *sub_808D278(s32 species);
s32 GetMovesLearnedAtLevel(u16* dst, s16 species, s32 level, s32 IQPoints);
bool8 CanMonLearnMove(u16 moveID, s16 _species);
s32 sub_808E218(unkStruct_808E218_arg* a1, Pokemon* pokemon);
s32 GetEvolutionSequence(Pokemon* pokemon, EvolveStage* a2);
s32 sub_808E400(s32 _species, s16* _a2, bool32 _bodySizeCheck, bool32 _shedinjaCheck);
void sub_808E490(Move* a1, s32 species);
char* sub_808E4FC(s32 a1);
char* sub_808E51C(s32 a1);
void InitShadowSprites(s32 param_1, s32 param_2);
bool8 AddShadowSprite(s32 species_, DungeonPos *shadowPos, axdata *axData);
static inline bool8 PokemonExists(Pokemon *mon)
{

View File

@@ -34,8 +34,6 @@ static EWRAM_DATA s32 sNewDefStats[2] = {0, 0};
void sub_8042A44(Entity *r0);
extern s32 GetMovesLearnedAtLevel(u16* dst, s16 species, s32 level, s32 IQPoints);
static const u8 gUnknown_8107010[8] = {0, 1, 1, 2, 1, 1, 0, 0};
static const u8 * const gUnknown_8107018[3] = {
_(""),

View File

@@ -46,9 +46,6 @@
#include "text_2.h"
#include "weather.h"
extern char* sub_808E4FC(s32 a1);
extern char* sub_808E51C(s32 a1);
EWRAM_DATA s32 gTeamMenuChosenId = 0;
static UNUSED EWRAM_DATA u8 sUnused[4] = {0};
EWRAM_DATA static SpriteOAM sOAMStatusDescriptionArrow = {0};

View File

@@ -55,7 +55,6 @@ static void EnsureDeoxysLoaded(void);
extern bool8 sub_806A58C(s16 r0);
extern void sub_8078084(Entity * pokemon);
extern void sub_808DFDC(s32 a1, DungeonMon* a2);
extern void sub_8067A80(u8 a0, s32 a1, s32 a2, Pokemon **a3);
extern bool8 sub_8070F80(Entity * pokemon, s32 direction);
extern s32 sub_806A4DC(EntityInfo *info);

View File

@@ -50,8 +50,6 @@ bool8 sub_8027D9C(Pokemon *pokeStruct);
extern u8 sub_8027DCC(Pokemon *);
extern void SetFriendAreaActionMenuState(u32);
extern void PlaySound(u32);
extern void sub_808D31C(Pokemon *);
extern bool8 sub_808D750(s16 index_);
u32 sub_8027E18(Pokemon *);
u8 sub_8027E4C(Pokemon *r0);

View File

@@ -17,8 +17,6 @@
#include "ground_map.h"
#include "constants/input.h"
extern bool8 sub_808D750(s32 index_);
static IWRAM_INIT struct unkStruct_3001B60 *sFriendList = {NULL};
static void SortbyAlphabetNo(s32, s32);

View File

@@ -130,8 +130,6 @@ extern bool8 GroundScriptNotify(Action *param_1, s32 param_2);
extern bool8 GroundScript_Cancel(Action *r0);
extern Pokemon *sub_80A8D54(s32);
extern void sub_80A6688(struct UnkGroundSpriteStruct *ptr, s32 a0);
extern s32 sub_808D6A4(s32 *ptr);
extern s32 sub_808D654(s32 *ptr);
extern bool8 GetCurrentDungeonBounds(PixelPos *a0, PixelPos *a1);
extern void sub_80A7428(struct UnkGroundSpriteStruct *ptr, s32 a1_, s32 monsterId_, s32 a3);
extern void SetPredefinedScript(Action *param_1, s16 index, const ScriptCommand *param_3);

View File

@@ -11,6 +11,7 @@
#include "memory.h"
#include "sprite.h"
#include "effect_sub_1.h"
#include "pokemon.h"
static IWRAM_INIT unkStruct_3001B7C *gUnknown_3001B7C = {NULL};
@@ -28,9 +29,6 @@ static EWRAM_INIT OpenedFile *gUnknown_203B4B4 = {NULL};
// code_8098BDC.s
extern void sub_809971C(u16, const u8 *, s16);
extern void sub_80997F4(u16, u16);
// pokemon_2.s
extern void InitShadowSprites(u32, u32);
extern void sub_80ABA7C(void);
extern void sub_80ACAD4(void);
extern void sub_80AD7AC(void);

View File

@@ -7,7 +7,6 @@
#include "pokemon.h"
extern s32 sub_800E700(s32);
extern bool8 AddShadowSprite(s32 species, DungeonPos* a2, axdata* a3);
void sub_80A7428(struct UnkGroundSpriteStruct *ptr, s32 a1_, s32 monsterId_, s32 a3)
{

View File

@@ -34,14 +34,12 @@ static EWRAM_INIT unkStruct_203B2B8 *sUnknown_203B2B8 = {NULL};
extern u32 sub_8026F04(Pokemon *);
bool8 CanTakePokemonHeldItem(Pokemon *r0);
extern bool8 sub_808D750(s16 index_);
bool8 sub_8026E88(Pokemon *r0);
bool8 sub_8026EB8(Pokemon *r0);
void sub_8026E08(u32 r0);
void sub_8026DAC(u32 r0, BulkItem *item);
void sub_8026FA4(void);
void PartyListMenu_BuildYesNoMenu(void);
extern void sub_808D31C(Pokemon *);
void PartyListMenu_CreateMenu2(void);
void PartyListMenu_CreateMenu1(void);

View File

@@ -514,7 +514,7 @@ s32 sub_808D6A4(s32 *ptr)
return count;
}
bool8 sub_808D6E8()
UNUSED static bool8 sub_808D6E8(void)
{
s32 i;
s32 count = 0;
@@ -532,48 +532,51 @@ bool8 sub_808D6E8()
return 0;
}
bool8 sub_808D750(s32 index_)
{
Pokemon* pokemon;
s32 i;
s32 index = (s16) index_;
s32 count = 0;
s32 size_count = 0;
bool8 sub_808D750(s32 index_)
{
Pokemon* pokemon;
s32 i;
s32 index = (s16) index_;
s32 count = 0;
s32 size_count = 0;
for (i = 0; i < NUM_MONSTERS; i++) {
pokemon = &gRecruitedPokemonRef->pokemon[i];
if (PokemonExists(pokemon) && PokemonFlag2(pokemon)) {
size_count += GetBodySize(pokemon->speciesNum);
count++;
}
}
if (count < 4) {
pokemon = &gRecruitedPokemonRef->pokemon[index];
for (i = 0; i < NUM_MONSTERS; i++) {
pokemon = &gRecruitedPokemonRef->pokemon[i];
if (PokemonExists(pokemon) && PokemonFlag2(pokemon)) {
size_count += GetBodySize(pokemon->speciesNum);
if (size_count < 7) {
return TRUE;
}
count++;
}
return FALSE;
}
void PeekPokemonItem(s16 index_, BulkItem* item) {
if (count < 4) {
pokemon = &gRecruitedPokemonRef->pokemon[index];
size_count += GetBodySize(pokemon->speciesNum);
if (size_count < 7) {
return TRUE;
}
}
return FALSE;
}
void PeekPokemonItem(s16 index_, BulkItem* item)
{
s32 index = index_;
Pokemon* pokemon = &gRecruitedPokemonRef->pokemon[index];
item->id = pokemon->heldItem.id;
item->quantity = pokemon->heldItem.quantity;
}
void GivePokemonItem(s16 index_, BulkItem* item) {
void GivePokemonItem(s16 index_, BulkItem* item)
{
s32 index = index_;
Pokemon* pokemon = &gRecruitedPokemonRef->pokemon[index];
pokemon->heldItem.id = item->id;
pokemon->heldItem.quantity = item->quantity;
}
bool8 IsPokemonRenamed(Pokemon* pokemon) {
bool8 IsPokemonRenamed(Pokemon* pokemon)
{
char species_name[20];
char* species = GetMonSpecies(pokemon->speciesNum);
s32 i;
@@ -834,7 +837,6 @@ s16 GetAlphabetParentNo(s16 index, s32 r1)
return sMonsterParameters[index].alphabetParent[r1];
}
s16 GetInternalNo(s16 index)
{
return sMonsterParameters[index].dexInternal[1];
@@ -1117,7 +1119,6 @@ bool8 CanMonLearnMove(u16 moveID, s16 _species)
return FALSE;
}
s32 sub_808E218(unkStruct_808E218_arg* a1, Pokemon* pokemon)
{
s32 i;
@@ -1177,7 +1178,7 @@ s32 sub_808E218(unkStruct_808E218_arg* a1, Pokemon* pokemon)
return count;
}
s32 GetEvolutionSequence(Pokemon* pokemon, struct EvolveStage* a2)
s32 GetEvolutionSequence(Pokemon* pokemon, EvolveStage* a2)
{
s32 count;
s32 species;
@@ -1338,17 +1339,18 @@ void InitShadowSprites(s32 param_1, s32 param_2)
}
}
static const s32 gUnknown_81076C4[6] = {-4, -8, -16, -4, -8, -16}; // x-coord positioning for shadow sprites
static const s32 sShadowXPosOffsets[6] = {-4, -8, -16, -4, -8, -16};
bool8 AddShadowSprite(s16 species, s16* a2, s16* a3)
bool8 AddShadowSprite(s32 species_, DungeonPos *shadowPos, axdata *axData)
{
s16 species = (s16) (species_);
if (species != MONSTER_DIGLETT && species != MONSTER_DUGTRIO) {
s32 shadowSize = GetShadowSize(species);
s32 x, y;
x = a2[0] + a3[8];
y = a2[1] + a3[9];
x += gUnknown_81076C4[shadowSize];
x = shadowPos->x + axData->sub1.shadow.x;
y = shadowPos->y + axData->sub1.shadow.y;
x += sShadowXPosOffsets[shadowSize];
y -= 4;
SpriteSetX(&sShadowSprites[shadowSize], x);

View File

@@ -86,7 +86,6 @@ extern void sub_8068F80(void);
extern void sub_8042E98(void);
extern bool8 TryForcedLoss(bool8);
extern void sub_806A914(bool8 a0, bool8 a1, bool8 showRunAwayEffect);
extern s32 GetMovesLearnedAtLevel(u16* dst, s16 species, s32 level, s32 IQPoints);
extern void sub_8042B0C(Entity *);
extern u8 gUnknown_202F32C;