summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h17
-rw-r--r--include/data.h4
-rw-r--r--include/pokemon.h36
3 files changed, 34 insertions, 23 deletions
diff --git a/include/battle.h b/include/battle.h
index 14ecfbdd3..e32e621cc 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -37,8 +37,6 @@
#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
#define B_ACTION_NONE 0xFF
-#define MAX_TRAINER_ITEMS 4
-
// array entries for battle communication
#define MULTIUSE_STATE 0
#define CURSOR_POSITION 1
@@ -594,16 +592,15 @@ struct BattleSpriteData
struct MonSpritesGfx
{
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
- union
- {
- void* ptr[4];
- u8* byte[4];
+ union {
+ void* ptr[MAX_BATTLERS_COUNT];
+ u8* byte[MAX_BATTLERS_COUNT];
} sprites;
- struct SpriteTemplate templates[4];
- struct SpriteFrameImage field_74[4][4];
- u8 field_F4[0x80];
+ struct SpriteTemplate templates[MAX_BATTLERS_COUNT];
+ struct SpriteFrameImage frameImages[MAX_BATTLERS_COUNT][4];
+ u8 unusedArr[0x80];
u8 *barFontGfx;
- void *field_178;
+ void *unusedPtr;
u16 *buffer;
};
diff --git a/include/data.h b/include/data.h
index f94f55a8f..374435cba 100644
--- a/include/data.h
+++ b/include/data.h
@@ -5,6 +5,8 @@
#define SPECIES_SHINY_TAG 500
+#define MAX_TRAINER_ITEMS 4
+
enum {
BATTLER_AFFINE_NORMAL,
BATTLER_AFFINE_EMERGE,
@@ -66,7 +68,7 @@ struct Trainer
/*0x02*/ u8 encounterMusic_gender; // last bit is gender
/*0x03*/ u8 trainerPic;
/*0x04*/ u8 trainerName[12];
- /*0x10*/ u16 items[4];
+ /*0x10*/ u16 items[MAX_TRAINER_ITEMS];
/*0x18*/ bool8 doubleBattle;
/*0x1C*/ u32 aiFlags;
/*0x20*/ u8 partySize;
diff --git a/include/pokemon.h b/include/pokemon.h
index 3565bd966..e656b2f04 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -122,20 +122,32 @@ struct Pokemon
u16 spDefense;
};
-struct Unknown_806F160_Struct
+struct MonSpritesGfxManager
{
- u32 field_0_0:4;
- u32 field_0_1:4;
- u32 field_1:8;
- u16 magic:8;
- u32 field_3_0:4;
- u32 field_3_1:4;
- void *bytes;
- u8 **byteArrays;
+ u32 numSprites:4;
+ u32 numSprites2:4; // Never read
+ u32 numFrames:8;
+ u32 active:8;
+ u32 dataSize:4;
+ u32 mode:4; // MON_SPR_GFX_MODE_*
+ void *spriteBuffer;
+ u8 **spritePointers;
struct SpriteTemplate *templates;
struct SpriteFrameImage *frameImages;
};
+enum {
+ MON_SPR_GFX_MODE_NORMAL,
+ MON_SPR_GFX_MODE_BATTLE,
+ MON_SPR_GFX_MODE_FULL_PARTY,
+};
+
+enum {
+ MON_SPR_GFX_MANAGER_A,
+ MON_SPR_GFX_MANAGER_B, // Nothing ever sets up this manager.
+ MON_SPR_GFX_MANAGERS_COUNT
+};
+
struct BattlePokemon
{
/*0x00*/ u16 species;
@@ -422,8 +434,8 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
const u8 *GetTrainerClassNameFromId(u16 trainerId);
const u8 *GetTrainerNameFromId(u16 trainerId);
bool8 HasTwoFramesAnimation(u16 species);
-struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1);
-void sub_806F47C(u8 id);
-u8 *sub_806F4F8(u8 id, u8 arg1);
+struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 managerId, u8 mode);
+void DestroyMonSpritesGfxManager(u8 managerId);
+u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum);
#endif // GUARD_POKEMON_H