summaryrefslogtreecommitdiff
path: root/include/pokemon.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/pokemon.h')
-rw-r--r--include/pokemon.h97
1 files changed, 51 insertions, 46 deletions
diff --git a/include/pokemon.h b/include/pokemon.h
index 9e3a667..874aa93 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -60,11 +60,44 @@ struct PokemonStruct
/* 0x4C */ u8 name[0xA];
};
+
+struct unkStruct_808E6F4
+{
+ s16 unk0;
+ u8 unk2;
+};
+
+struct EvolveStage
+{
+ s16 speciesNum;
+ u8 unkHasNextStage;
+};
+
struct PokemonStruct2
{
- // size 0x64
- u16 unk0;
- u8 fill[0x62];
+ // size 0x68
+ u16 unk0; // corresponds to unk0 inPokemonStruct
+ u8 unk2; // unk2
+ u8 unkHasNextStage; // unk3
+ struct unkPokeSubStruct_4 unk4; // unk4
+ u16 IQ; // IQ (other offset)
+ u16 unkA;
+ u16 unkC;
+ s16 speciesNum; // speciesNum (other offset)
+ u16 unk10; // pokeHP
+ u16 unk12; // pokeHP
+ struct Offense offense; // offense (other offset)
+ u32 unk18; // unk1C
+ struct unkPokeSubStruct_2C unk1C[4]; // unk2C
+ u8 fill3c[4];
+ /* 40 */ struct ItemSlot itemSlot; // heldItem
+ u32 unk44; // some struct
+ u32 unk48; // some struct (same type as 44)
+ u32 unk4C; // unk20
+ u8 unk50; // unk24
+ u8 fill51[3];
+ struct unkStruct_808E6F4 unk54;
+ u8 name[10]; // name (other offset)
};
struct unkStruct_203B45C
@@ -76,8 +109,8 @@ struct unkStruct_203B45C
struct EvolveStruct1
{
- /* 0x34 */ u16 evolve_from;
- /* 0x36 */ u16 evolve_type;
+ /* 0x34 */ s16 evolve_from;
+ /* 0x36 */ s16 evolve_type;
};
struct EvolveNeeds
@@ -131,48 +164,17 @@ struct gPokemon
};
-struct unkStruct_808E6F4
-{
- s16 unk0;
- u8 unk2;
-};
-
-struct EvolveStage
-{
- s16 speciesNum;
- u8 unkHasNextStage;
-};
-
-struct unkStruct_808DE50
-{
- u16 unk0; // corresponds to unk0 inPokemonStruct
- u8 unk2; // unk2
- u8 unkHasNextStage; // unk3
- struct unkPokeSubStruct_4 unk4; // unk4
- u16 IQ; // IQ (other offset)
- u16 unkA;
- u16 unkC;
- s16 speciesNum; // speciesNum (other offset)
- u16 unk10; // pokeHP
- u16 unk12; // pokeHP
- struct Offense offense; // offense (other offset)
- u32 unk18; // unk1C
- struct unkPokeSubStruct_2C unk1C[4]; // unk2C
- u8 fill3c[4];
- /* 40 */ struct ItemSlot itemSlot; // heldItem
- u32 unk44; // some struct
- u32 unk48; // some struct (same type as 44)
- u32 unk4C; // unk20
- u8 unk50; // unk24
- u8 fill51[3];
- struct unkStruct_808E6F4 unk54;
- u8 name[10]; // name (other offset)
-};
-
+// https://www.pokecommunity.com/showthread.php?t=407371
struct LevelData
{
- // only size is known
- u32 unk0[3];
+ s32 expRequired;
+ u8 gainHP;
+ u8 gainUnused;
+ u8 gainAtt;
+ u8 gainSPAtt;
+ u8 gainDef;
+ u8 gainSPDef;
+ u16 fillA;
};
struct unkStruct_808E218_arg
@@ -230,6 +232,9 @@ struct OpenedFile *GetDialogueSpriteDataPtr(s16 index);
s32 GetUnownIndex(s16 index);
void sub_808E6F4(struct unkStruct_808E6F4* a1);
s32 GetEvolutionSequence(struct PokemonStruct* pokemon, struct EvolveStage* a2);
-void xxx_pokemonstruct_to_unk_808DE50(struct unkStruct_808DE50* r0, struct PokemonStruct *r1, s32 r2);
+void xxx_pokemonstruct_to_pokemon2_808DE50(struct PokemonStruct2* r0, struct PokemonStruct *r1, s32 r2);
+void SavePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* pokemon);
+void RestorePokemonStruct(struct unkStruct_8094924*, struct PokemonStruct*);
+
#endif // GUARD_POKEMON_H