mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 19:55:09 -05:00
Some flags clean-up
This commit is contained in:
@@ -16,7 +16,7 @@ typedef struct unkStruct_203B22C
|
||||
/* 0x4C */ s32 monsAbleToLearnMove; // number of party members able to learn move
|
||||
/* 0x50 */ s16 unk50[MAX_TEAM_MEMBERS]; // species IDs of each member able to learn move
|
||||
/* 0x58 */ s16 chosenPokemon; // species of pokemon that will learn move
|
||||
/* 0x5C */ PokemonStruct1 *pokeStruct; // PokemonStruct of said pokemon
|
||||
/* 0x5C */ Pokemon *pokeStruct; // PokemonStruct of said pokemon
|
||||
u32 unk60;
|
||||
/* 0x64 */ MenuItem menuItems[8];
|
||||
} unkStruct_203B22C;
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
// size: 0x118
|
||||
struct unk_203B250
|
||||
{
|
||||
/* 0x0 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x0 */ Pokemon *pokeStruct;
|
||||
/* 0x4 */ s16 index;
|
||||
/* 0x6 */ u8 currFriendAreaLocation; // 0 when not in a friend area
|
||||
u8 unk7;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
PokemonStruct1 *unkC;
|
||||
Pokemon *unkC;
|
||||
/* 0x10 */ u32 state;
|
||||
/* 0x14 */ u32 menuAction;
|
||||
MenuStruct unk18;
|
||||
@@ -31,7 +31,7 @@ struct TeamBadgeData
|
||||
/* 0x4 */ RGB *palette; // Pics share common palette
|
||||
};
|
||||
|
||||
bool8 sub_801D014(PokemonStruct1 *);
|
||||
bool8 sub_801D014(Pokemon *);
|
||||
u32 sub_801D0DC(void);
|
||||
u32 sub_801D178(void);
|
||||
u8 sub_801D1D4(void);
|
||||
|
||||
@@ -14,7 +14,7 @@ typedef struct unkStruct_203B270
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
/* 0x8 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x8 */ Pokemon *pokeStruct;
|
||||
/* 0xC */ u8 isTeamLeader;
|
||||
/* 0x10 */ Move *moves;
|
||||
u8 fill14[0x1C - 0x14];
|
||||
|
||||
@@ -18,7 +18,7 @@ typedef struct unkStruct_203B294
|
||||
/* 0x3C */ s32 availIQSkillPostGummi;
|
||||
s32 unk40; // Gummi eaten flag?
|
||||
/* 0x44 */ Gummi gummi;
|
||||
/* 0x48 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x48 */ Pokemon *pokeStruct;
|
||||
/* 0x4C */ u32 itemIndex;
|
||||
/* 0x50 */ Item item;
|
||||
MenuStruct unk54;
|
||||
@@ -29,7 +29,7 @@ typedef struct unkStruct_203B294
|
||||
WindowTemplates windows;
|
||||
} unkStruct_203B294;
|
||||
|
||||
bool8 sub_80227B8(PokemonStruct1 *pkmn);
|
||||
bool8 sub_80227B8(Pokemon *pkmn);
|
||||
u32 sub_8022860(void);
|
||||
void sub_8022908(void);
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
typedef struct unkStruct_203B484
|
||||
{
|
||||
/* 0x0 */ u32 unk0;
|
||||
/* 0x4 */ PokemonStruct1 unk4;
|
||||
/* 0x4 */ Pokemon unk4;
|
||||
} unkStruct_203B484;
|
||||
|
||||
// size: 0x84
|
||||
|
||||
@@ -11,7 +11,7 @@ typedef struct unkStruct_203B3F8
|
||||
/* 0x0 */ u32 state;
|
||||
s16 unk4;
|
||||
u16 unk6;
|
||||
/* 0x8 */ PokemonStruct1 *pokemon;
|
||||
/* 0x8 */ Pokemon *pokemon;
|
||||
/* 0xC */ u32 menuAction;
|
||||
MenuStruct unk10;
|
||||
unkStructFor8013AA0 unk60;
|
||||
|
||||
@@ -31,7 +31,7 @@ OpenedFile *GetSpriteData(s32 _species);
|
||||
void LoadPokemonSprite(s32 _id, bool32 _ignoreDeoxys);
|
||||
void CloseAllSpriteFiles(void);
|
||||
void sub_806890C(void);
|
||||
void sub_8068A84(PokemonStruct1 *pokemon);
|
||||
void sub_8068A84(Pokemon *pokemon);
|
||||
void sub_8068BDC(bool8 a0);
|
||||
void sub_8068F28(void);
|
||||
void sub_8068F80(void);
|
||||
|
||||
@@ -49,7 +49,7 @@ struct unkStruct_203B2BC
|
||||
u32 id;
|
||||
BulkItem itemToGive;
|
||||
BulkItem item2;
|
||||
PokemonStruct1 *pokeStruct;
|
||||
Pokemon *pokeStruct;
|
||||
bool8 isTeamLeader;
|
||||
u32 moveIndex; // some sort of move index
|
||||
u16 moveID;
|
||||
|
||||
@@ -21,7 +21,7 @@ typedef struct unkStruct_203B2B4
|
||||
u32 itemIndex;
|
||||
BulkItem item1;
|
||||
BulkItem item2;
|
||||
/* 0x1C */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x1C */ Pokemon *pokeStruct;
|
||||
u32 moveIndex; // some sort of move index
|
||||
u16 moveID;
|
||||
Move moves[8];
|
||||
|
||||
@@ -14,7 +14,7 @@ typedef struct unkStruct_203B27C
|
||||
/* 0x4 */ s32 state;
|
||||
/* 0x8 */ u32 fallbackState;
|
||||
/* 0xC */ s16 speciesNum;
|
||||
/* 0x10 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x10 */ Pokemon *pokeStruct;
|
||||
/* 0x14 */ bool8 isNextMoveLinked;
|
||||
bool8 unk15;
|
||||
/* 0x16 */ bool8 isTeamLeader;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
struct IQSkillListMenu
|
||||
{
|
||||
/* 0x0 */ s16 species;
|
||||
/* 0x4 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x4 */ Pokemon *pokeStruct;
|
||||
/* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS];
|
||||
/* 0x20 */ s32 numIQSkills;
|
||||
/* 0x24 */ MenuHeaderWindow s24;
|
||||
|
||||
@@ -11,7 +11,7 @@ struct IQSkillMenu
|
||||
{
|
||||
/* 0x0 */ u32 state;
|
||||
/* 0x4 */ s16 species;
|
||||
/* 0x8 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x8 */ Pokemon *pokeStruct;
|
||||
/* 0xC */ u8 iqSkills[NUM_IQ_SKILLS];
|
||||
/* 0x24 */ u32 menuIndex;
|
||||
/* 0x28 */ u8 iqSkillIndex;
|
||||
|
||||
@@ -97,7 +97,7 @@ bool8 IsEdibleItem(u8 id);
|
||||
u8 xxx_bit_lut_lookup_8091E50(u8 i0, u8 i1);
|
||||
bool8 IsInvalidItemReward(u8 itemID);
|
||||
bool8 HasGummiItem(void);
|
||||
void GetGummiItemStatBoost(PokemonStruct1* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi);
|
||||
void GetGummiItemStatBoost(Pokemon* pokemon, u8 id, bool8 checkBoostFlags, Gummi *gummi);
|
||||
|
||||
void ReadHeldItemBits(DataSerializer *, BulkItem *);
|
||||
void WriteHeldItemBits(DataSerializer *, BulkItem *);
|
||||
@@ -143,4 +143,9 @@ static inline bool8 ItemInShop(Item *item)
|
||||
return (item->flags & ITEM_FLAG_IN_SHOP);
|
||||
}
|
||||
|
||||
static inline bool8 BulkItemExists(BulkItem *item)
|
||||
{
|
||||
return item->id != 0;
|
||||
}
|
||||
|
||||
#endif // GUARD_ITEMS_H
|
||||
|
||||
@@ -12,7 +12,7 @@ typedef struct LuminousCaveWork
|
||||
{
|
||||
/* 0x0 */ bool8 evolutionComplete;
|
||||
/* 0x4 */ EvolveStatus evolveStatus;
|
||||
/* 0xC */ PokemonStruct1 *pokeStruct;
|
||||
/* 0xC */ Pokemon *pokeStruct;
|
||||
/* 0x10 */ bool8 pokeRenamed;
|
||||
/* 0x14 */ u32 evoItem1_InvIndex; // inventory index of item
|
||||
/* 0x18 */ u32 evoItem2_InvIndex; // inventory index of item
|
||||
|
||||
@@ -107,6 +107,11 @@ void sub_8094060(Move *srcMoves, Move *destMoves);
|
||||
void WritePoke2MovesBits(DataSerializer *, struct Moves *);
|
||||
void ReadPoke2MovesBits(DataSerializer *, struct Moves *);
|
||||
|
||||
// Note: The reason for both macros and static inlines is that some functions require the '!= 0', while others don't.
|
||||
#define MOVE_FLAG_LINK_CHAIN(move)((move)->moveFlags & MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN)
|
||||
#define MOVE_FLAG_SET_LINK_CHAIN(move)((move)->moveFlags |= MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN)
|
||||
#define MOVE_FLAG_CLEAR_LINK_CHAIN(move)((move)->moveFlags &= ~(MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN))
|
||||
|
||||
static inline void ResetMoveFlags(Move *move)
|
||||
{
|
||||
move->moveFlags = 0;
|
||||
@@ -129,7 +134,7 @@ static inline bool8 MoveFlagLastUsed(Move *move)
|
||||
|
||||
static inline bool8 MoveFlagLinkChain(Move *move)
|
||||
{
|
||||
return (move->moveFlags & MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN);
|
||||
return MOVE_FLAG_LINK_CHAIN(move) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 MoveFlagDisabled(Move *move)
|
||||
|
||||
@@ -25,9 +25,9 @@ typedef struct unkStruct_203B35C
|
||||
unkStruct_203B480 unk22C;
|
||||
unkStruct_203B480 unk25C;
|
||||
unkStruct_203B480 unk28C;
|
||||
PokemonStruct1 unk2BC;
|
||||
Pokemon unk2BC;
|
||||
unkStruct_203B480 unk314;
|
||||
PokemonStruct1 unk344;
|
||||
Pokemon unk344;
|
||||
u8 unk39C[0xB4]; // unkStruct_803B344?
|
||||
u8 unk450[0xB4]; // unkStruct_803B344?
|
||||
} unkStruct_203B35C;
|
||||
|
||||
@@ -17,7 +17,7 @@ typedef struct unkStruct_203B2B8
|
||||
/* 0xC */ u32 id;
|
||||
/* 0x10 */ BulkItem item1;
|
||||
/* 0x14 */ BulkItem item2;
|
||||
/* 0x18 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x18 */ Pokemon *pokeStruct;
|
||||
/* 0x1C */ bool8 isTeamLeader;
|
||||
/* 0x20 */ u32 moveIndex;
|
||||
/* 0x24 */ u16 moveID;
|
||||
@@ -35,7 +35,7 @@ typedef struct unkStruct_203B2B8
|
||||
WindowTemplates unk220;
|
||||
} unkStruct_203B2B8;
|
||||
|
||||
bool8 CreatePartyListMenu(PokemonStruct1 *pokeStruct);
|
||||
bool8 CreatePartyListMenu(Pokemon *pokeStruct);
|
||||
u32 sub_8025F68(void);
|
||||
bool8 sub_802604C(void);
|
||||
void CleanPartyListMenu(void);
|
||||
|
||||
@@ -43,13 +43,13 @@ 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, PokemonStruct1 *pokemon, s32 colorNum);
|
||||
void PrintColoredPokeNameToBuffer(u8 *buffer, Pokemon *pokemon, s32 colorNum);
|
||||
void sub_808D930(u8 *buffer, s32 index);
|
||||
void sub_808D9DC(u8 *buffer, PokemonStruct2 *, s32 colorNum);
|
||||
void sub_808DA0C(u8 *buffer, PokemonStruct2 *);
|
||||
void sub_808D9DC(u8 *buffer, DungeonMon *, s32 colorNum);
|
||||
void sub_808DA0C(u8 *buffer, DungeonMon *);
|
||||
void PeekPokemonItem(s16 index_, BulkItem* item);
|
||||
void GivePokemonItem(s16 index_, BulkItem* item);
|
||||
bool8 IsPokemonRenamed(PokemonStruct1* pokemon);
|
||||
bool8 IsPokemonRenamed(Pokemon* pokemon);
|
||||
bool8 CanMonLearnMove(u16 moveID, s16 _species);
|
||||
|
||||
u8 *GetCategoryString(s16 index);
|
||||
@@ -83,73 +83,75 @@ OpenedFile *OpenPokemonDialogueSpriteFile(s16 index);
|
||||
OpenedFile *GetDialogueSpriteDataPtr(s32 index);
|
||||
s32 GetUnownIndex(s16 index);
|
||||
void GenerateHiddenPower(HiddenPower *);
|
||||
s32 GetEvolutionSequence(PokemonStruct1 *pokemon, EvolveStage *);
|
||||
s32 GetEvolutionSequence(Pokemon *pokemon, EvolveStage *);
|
||||
s32 sub_808E400(s32 _species, s16* _a2, bool32 _bodySizeCheck, bool32 _shedinjaCheck);
|
||||
void sub_808E490(Move* a1, s32 species);
|
||||
void xxx_pokemonstruct_to_pokemon2_808DE50(PokemonStruct2 *, PokemonStruct1 *, s32);
|
||||
void WritePoke1Bits(DataSerializer *, PokemonStruct1 *pokemon);
|
||||
void ReadPoke1Bits(DataSerializer *, PokemonStruct1 *);
|
||||
s32 sub_808E218(unkStruct_808E218_arg *, PokemonStruct1 *pokemon);
|
||||
void sub_808CFD0(PokemonStruct1 *pokemon, s16 _species, u8* name, u32 _itemID, DungeonLocation *location, u16 *moveID);
|
||||
void sub_808D0D8(PokemonStruct1 *pokemon);
|
||||
PokemonStruct1 *GetPlayerPokemonStruct(void);
|
||||
PokemonStruct1 *sub_808D1DC(PokemonStruct1*);
|
||||
PokemonStruct1 *sub_808D378(void);
|
||||
PokemonStruct1 *sub_808D3BC(void);
|
||||
PokemonStruct1 *sub_808D3F8(void);
|
||||
PokemonStruct1 * sub_808D434(s16 species, s32 param_2);
|
||||
void PokemonToDungeonMon(DungeonMon *, Pokemon *, s32);
|
||||
void DungeonMonToRecruitedPokemon(s32 id, DungeonMon* src);
|
||||
void DungeonMonToPokemon(Pokemon* dst, DungeonMon* src);
|
||||
void WritePoke1Bits(DataSerializer *, Pokemon *pokemon);
|
||||
void ReadPoke1Bits(DataSerializer *, Pokemon *);
|
||||
s32 sub_808E218(unkStruct_808E218_arg *, Pokemon *pokemon);
|
||||
void sub_808CFD0(Pokemon *pokemon, s16 _species, u8* name, u32 _itemID, DungeonLocation *location, u16 *moveID);
|
||||
void sub_808D0D8(Pokemon *pokemon);
|
||||
Pokemon *GetPlayerPokemonStruct(void);
|
||||
Pokemon *sub_808D1DC(Pokemon*);
|
||||
Pokemon *sub_808D378(void);
|
||||
Pokemon *sub_808D3BC(void);
|
||||
Pokemon *sub_808D3F8(void);
|
||||
Pokemon * sub_808D434(s16 species, s32 param_2);
|
||||
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, PokemonStruct1 *pokemon);
|
||||
void PrintPokeNameToBuffer(u8 *buffer, Pokemon *pokemon);
|
||||
void GetPokemonLevelData(LevelData* a1, s32 _id, s32 level);
|
||||
const u8* DecompressMoveID(const u8* a1, u16* moveID);
|
||||
bool8 sub_808DA44(s32, u32);
|
||||
void ConvertStoryMonToPokemon(PokemonStruct1 *dst, struct StoryMonData *src);
|
||||
void ConvertStoryMonToPokemon(Pokemon *dst, struct StoryMonData *src);
|
||||
void sub_808CE74(s16 _species, bool32 _isLeader, u8* name);
|
||||
PokemonStruct1 *sub_808D278(s32 species);
|
||||
Pokemon *sub_808D278(s32 species);
|
||||
|
||||
static inline bool8 PokemonExists(PokemonStruct1 *mon)
|
||||
static inline bool8 PokemonExists(Pokemon *mon)
|
||||
{
|
||||
return (mon->flags & POKEMON_FLAG_EXISTS) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 PokemonFlag1Struct2(PokemonStruct2 *mon)
|
||||
static inline bool8 DungeonMonExists(DungeonMon *mon)
|
||||
{
|
||||
return (mon->flags & POKEMON_FLAG_EXISTS) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 PokemonFlag2(PokemonStruct1 *mon)
|
||||
static inline bool8 PokemonFlag2(Pokemon *mon)
|
||||
{
|
||||
return (mon->flags & POKEMON_FLAG_ON_TEAM) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 PokemonFlag2Struct2(PokemonStruct2 *mon)
|
||||
static inline bool8 PokemonFlag2Struct2(DungeonMon *mon)
|
||||
{
|
||||
return (mon->flags & POKEMON_FLAG_ON_TEAM) != 0;
|
||||
}
|
||||
|
||||
static inline void SetPokemonFlag2(PokemonStruct1 *mon)
|
||||
static inline void SetPokemonFlag2(Pokemon *mon)
|
||||
{
|
||||
mon->flags |= POKEMON_FLAG_ON_TEAM;
|
||||
}
|
||||
|
||||
static inline bool8 IsMonTeamLeader(PokemonStruct1 *pokemon)
|
||||
static inline bool8 IsMonTeamLeader(Pokemon *pokemon)
|
||||
{
|
||||
return pokemon->isTeamLeader != FALSE;
|
||||
}
|
||||
|
||||
#include "constants/dungeon.h"
|
||||
|
||||
static inline bool8 IsMonPartner(PokemonStruct1 *mon)
|
||||
static inline bool8 IsMonPartner(Pokemon *mon)
|
||||
{
|
||||
return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER);
|
||||
}
|
||||
|
||||
static inline bool8 IsMonLeader(PokemonStruct1 *mon)
|
||||
static inline bool8 IsMonLeader(Pokemon *mon)
|
||||
{
|
||||
return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER);
|
||||
}
|
||||
|
||||
@@ -23,9 +23,9 @@ typedef struct EvolveStatus
|
||||
/* 0x6 */ s16 targetEvolveSpecies;
|
||||
} EvolveStatus;
|
||||
|
||||
void SetMonEvolveStatus(struct PokemonStruct1 *pokemon, EvolveStatus *evolveStatus,bool8 param_3);
|
||||
s32 GetMonSummaryScreenEvoStringId(PokemonStruct1 *pokemon);
|
||||
PokemonStruct1 *sub_808F734(PokemonStruct1 *pokemon, s16 _species);
|
||||
PokemonStruct1 *sub_808F798(PokemonStruct1 *pokemon, s16 _species);
|
||||
void SetMonEvolveStatus(struct Pokemon *pokemon, EvolveStatus *evolveStatus,bool8 param_3);
|
||||
s32 GetMonSummaryScreenEvoStringId(Pokemon *pokemon);
|
||||
Pokemon *sub_808F734(Pokemon *pokemon, s16 _species);
|
||||
Pokemon *sub_808F798(Pokemon *pokemon, s16 _species);
|
||||
|
||||
#endif // GUARD_POKEMON_EVOLUTION_H
|
||||
|
||||
@@ -55,6 +55,6 @@ struct UnkInfoTabStruct
|
||||
};
|
||||
|
||||
void ShowPokemonSummaryWindow(s32 which, s32 currSubWindowId, struct MonSummaryInfo *monInfo, struct UnkInfoTabStruct *param_4, u32 windowId);
|
||||
void SetMonSummaryInfo(struct MonSummaryInfo *dst, struct PokemonStruct1 *pokemon, bool8 param_3);
|
||||
void SetMonSummaryInfo(struct MonSummaryInfo *dst, struct Pokemon *pokemon, bool8 param_3);
|
||||
|
||||
#endif // GUARD_POKEMON_SUMMARY_WINDOW_H
|
||||
|
||||
@@ -27,7 +27,7 @@ typedef struct DungeonSetupInfo
|
||||
{
|
||||
DungeonSetupSubstruct sub0; // TODO: find a better name
|
||||
DungeonMailSeed dungeonSeed;
|
||||
PokemonStruct1 mon;
|
||||
Pokemon mon;
|
||||
u8 *unk74;
|
||||
Dungeon *dungeon;
|
||||
s16 unk7C; // Set to 5 if the dungeon was skipped (quicksave read failed)
|
||||
|
||||
@@ -21,7 +21,7 @@ typedef struct unkPokeSubStruct_C
|
||||
} unkPokeSubStruct_C;
|
||||
|
||||
// size: R=0x58 | B=0x40
|
||||
typedef struct PokemonStruct1
|
||||
typedef struct Pokemon
|
||||
{
|
||||
/* R=0x0 | B=0x0 */ u16 flags;
|
||||
/* R=0x2 | B=0x2 */ bool8 isTeamLeader;
|
||||
@@ -38,7 +38,7 @@ typedef struct PokemonStruct1
|
||||
/* R=0x28 | B=0x1C */ BulkItem heldItem;
|
||||
/* R=0x2C | B=0x1E */ Move moves[MAX_MON_MOVES];
|
||||
/* R=0x4C | B=0x36 */ u8 name[POKEMON_NAME_LENGTH];
|
||||
} PokemonStruct1;
|
||||
} Pokemon;
|
||||
|
||||
// size: 0x4
|
||||
typedef struct EvolveStage
|
||||
@@ -47,15 +47,18 @@ typedef struct EvolveStage
|
||||
/* 0x2 */ u8 level;
|
||||
} EvolveStage;
|
||||
|
||||
#define UNK_RECRUITED_POKEMON_ID_55AA 0x55AA
|
||||
#define UNK_RECRUITED_POKEMON_ID_5AA5 0x5AA5
|
||||
|
||||
// size: R=0x64 | B=0x54
|
||||
typedef struct PokemonStruct2
|
||||
typedef struct DungeonMon
|
||||
{
|
||||
/* R=0x0 | B=0x0 */ u16 flags; // corresponds to flags in PokemonStruct.
|
||||
/* R=0x2 | B=0x2 */ bool8 isTeamLeader;
|
||||
/* R=0x3 | B=0x3 */ u8 level;
|
||||
/* R=0x4 | B=0x4 */ DungeonLocation dungeonLocation;
|
||||
/* R=0x8 | B=0x6 */ s16 IQ;
|
||||
/* R=0xA | B=0x8 */ s16 unkA;
|
||||
/* R=0xA | B=0x8 */ s16 recruitedPokemonId; // id of corresponding gRecruitedPokemonRef->pokemon[]
|
||||
/* R=0xC | B=0xA */ u16 unkC;
|
||||
/* R=0xE | B=0xC */ s16 speciesNum;
|
||||
/* R=0x10 | B=0xE */ u16 unk10; // pokeHP
|
||||
@@ -70,14 +73,14 @@ typedef struct PokemonStruct2
|
||||
/* R=0x50 | B=0x45 */ u8 tacticIndex;
|
||||
/* R=0x54 | B=0x46 */ HiddenPower hiddenPower;
|
||||
/* R=0x58 | B=0x4A */ u8 name[POKEMON_NAME_LENGTH]; // name (other offset)
|
||||
} PokemonStruct2;
|
||||
} DungeonMon;
|
||||
|
||||
// size: R=0x90E8 | B=0x6990
|
||||
typedef struct RecruitedMon
|
||||
{
|
||||
/* R=0x0 | B=0x0 */ PokemonStruct1 pokemon[NUM_MONSTERS];
|
||||
/* R=0x8DF8 | B=0x6740 */ PokemonStruct2 pokemon2[4];
|
||||
/* R=0x8F88 | B=0x6890 */ PokemonStruct1 team[MAX_TEAM_MEMBERS];
|
||||
/* R=0x0 | B=0x0 */ Pokemon pokemon[NUM_MONSTERS];
|
||||
/* R=0x8DF8 | B=0x6740 */ DungeonMon dungeonTeam[MAX_TEAM_MEMBERS];
|
||||
/* R=0x8F88 | B=0x6890 */ Pokemon team[MAX_TEAM_MEMBERS];
|
||||
} RecruitedMon;
|
||||
|
||||
// size: 0x4
|
||||
|
||||
@@ -70,7 +70,7 @@ typedef struct unkStruct_203B480
|
||||
typedef struct WonderMailStruct_203B2C0_sub
|
||||
{
|
||||
/* 0x0 */ unkStruct_203B480 mail;
|
||||
/* 0x30 */ PokemonStruct1 pokemon;
|
||||
/* 0x30 */ Pokemon pokemon;
|
||||
} WonderMailStruct_203B2C0_sub;
|
||||
|
||||
#endif // GUARD_STR_WONDER_MAIL_H
|
||||
|
||||
@@ -42,7 +42,7 @@ struct WorldMapInfo
|
||||
{
|
||||
DungeonLocation startLocation;
|
||||
DungeonSetupSubstruct unk4;
|
||||
PokemonStruct1 mon;
|
||||
Pokemon mon;
|
||||
u8 unk6C;
|
||||
u8 unk6D[WORLD_MAP_UNK_6D_COUNT];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user