From 4b45282dd37266cc7d263a6fd4a5223f8e92b5be Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 16 Oct 2017 18:12:27 +0200 Subject: start working on battle interface --- include/battle.h | 10 ++++++++++ include/gba/types.h | 14 +++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index f00b7f9ab..548eb8de1 100644 --- a/include/battle.h +++ b/include/battle.h @@ -903,11 +903,21 @@ struct BattleHealthboxInfo u8 field_B; }; +struct BattleBarInfo +{ + u8 healthboxSpriteId; + u32 maxValue; + u32 currentValue; + bool32 isDoubleBattle; + s32 field_10; +}; + struct BattleSpriteData { struct BattleSpriteInfo *bankData; struct BattleHealthboxInfo *healthBoxesData; struct BattleAnimationInfo *animationData; + struct BattleBarInfo *battleBars; }; extern struct BattleSpriteData *gBattleSpritesDataPtr; 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; }; -- cgit v1.2.3 From 0ffc5652fd746816a763e4e0ec83c08f2f53222c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 18 Oct 2017 00:00:46 +0200 Subject: hp printing in healthboxes done I hope --- include/battle.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 548eb8de1..948111d43 100644 --- a/include/battle.h +++ b/include/battle.h @@ -931,6 +931,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; -- cgit v1.2.3 From 6e56211f40d7a191afd91bcf41d63178e26b5199 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 18 Oct 2017 21:42:00 +0200 Subject: more of battle interface done --- include/battle.h | 13 +++++++++++++ include/decompress.h | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 948111d43..ae7fa3ce4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -883,6 +883,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 diff --git a/include/decompress.h b/include/decompress.h index 6c925f730..c3a771893 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -8,7 +8,7 @@ void LZDecompressVram(const void *src, void *dest); u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src); void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); -bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src); +bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src); void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src); void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); -- cgit v1.2.3 From ee6bdc9068794652f929783e2ef326e542521327 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 18 Oct 2017 23:52:21 +0200 Subject: more battle interface --- include/battle_interface.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle_interface.h b/include/battle_interface.h index cecc7bd1f..93387cae0 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -10,8 +10,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 -- cgit v1.2.3 From 11bead31e90aca72f85352b684670a76a5aa7a16 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 19 Oct 2017 15:28:41 +0200 Subject: battle interface is done --- include/battle.h | 6 +++--- include/battle_interface.h | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index ae7fa3ce4..719db0fa3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -919,9 +919,9 @@ struct BattleHealthboxInfo struct BattleBarInfo { u8 healthboxSpriteId; - u32 maxValue; - u32 currentValue; - bool32 isDoubleBattle; + s32 maxValue; + s32 currentValue; + s32 field_C; s32 field_10; }; diff --git a/include/battle_interface.h b/include/battle_interface.h index 93387cae0..016a6e5c4 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -19,10 +19,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 UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); +void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void DestoryHealthboxSprite(u8 healthboxSpriteId); void nullsub_30(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); +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 -- cgit v1.2.3 From 9ccc472b97b1a7f85703f813665cb4a30f7891b6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 19 Oct 2017 18:25:48 +0200 Subject: label some functions --- include/battle_interface.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle_interface.h b/include/battle_interface.h index 016a6e5c4..dee884374 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -1,6 +1,20 @@ #ifndef GUARD_BATTLE_INTERFACE_H #define GUARD_BATTLE_INTERFACE_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, @@ -23,7 +37,7 @@ void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); void SetHealthboxSpriteVisible(u8 healthboxSpriteId); void DestoryHealthboxSprite(u8 healthboxSpriteId); -void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); +void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority); void SetBankHealthboxSpritePos(u8 bank); void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); -- cgit v1.2.3 From ccd7e8b3b1d942b2e1289611639f4e9a188cdc20 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 20 Oct 2017 19:24:46 +0200 Subject: battle interface review changes --- include/battle_anim.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') 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; -- cgit v1.2.3