diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/bag.h | 18 | ||||
-rw-r--r-- | include/gba/types.h | 52 | ||||
-rw-r--r-- | include/item_menu.h | 12 | ||||
-rw-r--r-- | include/trainer_pokemon_sprites.h (renamed from include/battle_dome_cards.h) | 6 |
4 files changed, 77 insertions, 11 deletions
diff --git a/include/bag.h b/include/bag.h new file mode 100644 index 000000000..f82531778 --- /dev/null +++ b/include/bag.h @@ -0,0 +1,18 @@ +#ifndef GUARD_BAG_H +#define GUARD_BAG_H + +void sub_810B858(void); +void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx); +void sub_810B958(const u8 * str); +void sub_810B994(void); +u8 sub_810B9DC(u8 a0, u8 a1); +void sub_810BA3C(u8 a0); +u8 sub_810BA70(u8 a0); +void sub_810BA9C(u8 a0); +u8 sub_810BAD8(u8 a0); +void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_810BB40(void); +void sub_810BB74(u8 windowId); + +#endif //GUARD_BAG_H diff --git a/include/gba/types.h b/include/gba/types.h index 480619d21..9f2594703 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -28,29 +28,42 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:2; + u16 mosaic:1; + u16 palettes:1; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + struct PlttData { u16 r:5; // red u16 g:5; // green u16 b:5; // blue u16 unused_15:1; -} /*__attribute__((packed))*/; +}; struct OamData { /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; // 0x1, 0x2 = 0x3 - u32 objMode:2; // 0x4, 0x8 = 0xC + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC u32 mosaic:1; // 0x10 u32 bpp:1; // 0x20 - u32 shape:2; // 0x40, 0x80 + u32 shape:2; // 0x40, 0x80 -> 0xC0 /*0x02*/ u32 x:9; - u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode - u32 size:2; + u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode + u32 size:2; // 0x4000, 0x8000 -> 0xC000 - /*0x04*/ u16 tileNum:10; - u16 priority:2; + /*0x04*/ u16 tileNum:10; // 0x3FF + u16 priority:2; // 0x400, 0x800 -> 0xC00 u16 paletteNum:4; /*0x06*/ u16 affineParam; }; @@ -74,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + struct BgAffineSrcData { s32 texX; diff --git a/include/item_menu.h b/include/item_menu.h index 9ebe3918a..efd0066ed 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -7,6 +7,18 @@ // Exported RAM declarations +struct BagStruct +{ + void (*bagCallback)(void); + u8 location; + u8 pocket; + u16 unk6; + u8 cursorPosition[6]; + u8 scrollPosition[6]; +}; + +extern struct BagStruct gUnknown_203ACFC; + extern u16 gSpecialVar_ItemId; // Exported ROM declarations diff --git a/include/battle_dome_cards.h b/include/trainer_pokemon_sprites.h index 94c9876f3..3ae75ed0f 100644 --- a/include/battle_dome_cards.h +++ b/include/trainer_pokemon_sprites.h @@ -3,7 +3,7 @@ #include "global.h" -bool16 dp13_810BB8C(void); +bool16 ResetAllPicSprites(void); u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D820(u16 spriteId); @@ -11,7 +11,7 @@ u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 u16 sub_818D8F0(u16 spriteId); u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); u8 sub_818D97C(u8 a0, u8 a1); -u8 sub_810C2A4(u16, u8, s16, s16, u8, u16); -void sub_810C2E8(u16); +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 FreeAndDestroyTrainerPicSprite(u16); #endif //GUARD_BATTLE_DOME_CARDS_H |