summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2017-10-20 12:39:55 -0500
committerGitHub <noreply@github.com>2017-10-20 12:39:55 -0500
commit35a96cb0c007545ecc87732f8dc8b2eb93e3ecc2 (patch)
tree79174cee322cfcaac7dec1ac43f668fa747d99c3 /include
parentae5aa3c4dfd81fc25e5abeef1b915bb2da68b8d1 (diff)
parentccd7e8b3b1d942b2e1289611639f4e9a188cdc20 (diff)
Merge pull request #88 from DizzyEggg/decompile_battle_interface
decompile battle interface
Diffstat (limited to 'include')
-rw-r--r--include/battle.h25
-rw-r--r--include/battle_anim.h4
-rw-r--r--include/battle_interface.h37
-rw-r--r--include/gba/types.h14
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;
};