diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 25 | ||||
-rw-r--r-- | include/battle_anim.h | 4 | ||||
-rw-r--r-- | include/battle_interface.h | 37 | ||||
-rw-r--r-- | include/gba/types.h | 14 |
4 files changed, 65 insertions, 15 deletions
diff --git a/include/battle.h b/include/battle.h index a7a26e5eb..8ea1b78f4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -888,6 +888,19 @@ struct BattleSpriteInfo struct BattleAnimationInfo { u16 field; // to fill up later + u8 field_2; + u8 field_3; + u8 field_4; + u8 field_5; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9_x1 : 1; + u8 field_9_x2 : 1; + u8 field_9_x1C : 3; + u8 field_9_x20 : 1; + u8 field_9_x40 : 1; + u8 field_9_x80 : 1; }; struct BattleHealthboxInfo @@ -910,11 +923,21 @@ struct BattleHealthboxInfo u8 field_B; }; +struct BattleBarInfo +{ + u8 healthboxSpriteId; + s32 maxValue; + s32 currentValue; + s32 field_C; + s32 field_10; +}; + struct BattleSpriteData { struct BattleSpriteInfo *bankData; struct BattleHealthboxInfo *healthBoxesData; struct BattleAnimationInfo *animationData; + struct BattleBarInfo *battleBars; }; extern struct BattleSpriteData *gBattleSpritesDataPtr; @@ -933,6 +956,8 @@ struct MonSpritesGfx void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon void* sprites[4]; struct SpriteTemplate templates[4]; + u8 field_74[0x100]; + u8 *fontPixels; }; extern struct BattleSpritesGfx* gMonSpritesGfx; diff --git a/include/battle_anim.h b/include/battle_anim.h index f38572d19..5282916c0 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -39,8 +39,8 @@ struct BattleAnimBackground #define ANIM_ARGS_COUNT 8 -#define PAN_ATTACKER_PLAYER -64 -#define PAN_ATTACKER_OPPONENT 63 +#define PAN_SIDE_PLAYER -64 +#define PAN_SIDE_OPPONENT 63 extern void (*gAnimScriptCallback)(void); extern bool8 gAnimScriptActive; diff --git a/include/battle_interface.h b/include/battle_interface.h index 9c5b56bc8..05ea1c021 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -1,6 +1,22 @@ #ifndef GUARD_BATTLE_INTERFACE_H #define GUARD_BATTLE_INTERFACE_H +#include "battle_controllers.h" + +#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF +#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700 +#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701 +#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702 + +#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B + +#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C +#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714 + +#define TAG_HEALTHBOX_PAL 0xD6FF +#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710 +#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712 + enum { HEALTHBOX_ALL, @@ -10,8 +26,8 @@ enum HEALTHBOX_NICK, HEALTHBOX_HEALTH_BAR, HEALTHBOX_EXP_BAR, - HEALTHBOX_7, - HEALTHBOX_8, + HEALTHBOX_UNUSED_7, + HEALTHBOX_UNUSED_8, HEALTHBOX_STATUS_ICON, HEALTHBOX_SAFARI_ALL_TEXT, HEALTHBOX_SAFARI_BALLS_TEXT @@ -19,11 +35,20 @@ enum u8 CreateBankHealthboxSprites(u8 bank); u8 CreateSafariPlayerHealthboxSprites(void); -void SetBankHealthboxSpritePos(u8 bank); -void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 field_C); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); +void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void DestoryHealthboxSprite(u8 healthboxSpriteId); +void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); +void UpdateOamPriorityInAllHealthboxes(u8 priority); +void SetBankHealthboxSpritePos(u8 bank); +void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); +void SwapHpBarsWithHpText(void); +u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); +void sub_8073C30(u8 taskId); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); -void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); -void sub_8072A88(u8 arg0); +s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3); +u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); +u8 GetHPBarLevel(s16 hp, s16 maxhp); #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/gba/types.h b/include/gba/types.h index fd8a20a4c..e9a380023 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -39,18 +39,18 @@ struct PlttData struct OamData { /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; - u32 objMode:2; - u32 mosaic:1; - u32 bpp:1; - u32 shape:2; + /*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 -> 0xC0 /*0x02*/ u32 x:9; u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode u32 size:2; - /*0x04*/ u16 tileNum:10; - u16 priority:2; + /*0x04*/ u16 tileNum:10; // 0x33F + u16 priority:2; // 0x400, 0x800 -> 0xC00 u16 paletteNum:4; /*0x06*/ u16 affineParam; }; |