summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/functions.h9
-rw-r--r--include/global.h12
-rw-r--r--include/greatFairy.h48
-rw-r--r--include/item.h61
4 files changed, 94 insertions, 36 deletions
diff --git a/include/functions.h b/include/functions.h
index 40d6acfe..78330fae 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -26,6 +26,9 @@ extern void LoadRoomEntityList();
void ModHealth(s32);
void CopyPosition(Entity*, Entity*);
extern u32* StartCutscene(Entity*, u8*);
+extern void GetNextFrame(Entity*);
+extern u32 LoadExtraSpriteData(Entity*, u32*);
+extern void ResolveEntityOnTop(Entity*, Entity*);
// Unidentified
extern void sub_0806ED78(Entity*);
@@ -34,13 +37,10 @@ extern u32 sub_0805ACC0(Entity*);
extern u32 sub_0801E99C(Entity*);
extern void sub_0806924C(Entity*);
extern void sub_080AEF88(Entity*);
-extern Entity* sub_080873AC(Entity*, u32, u32);
extern void sub_08078778(Entity*);
extern void sub_080787A8(Entity*, u32);
extern void sub_0806F118(Entity*);
extern void sub_080791D0();
-extern void sub_08087380();
-extern void sub_08004274();
extern void sub_0805EC9C();
extern void sub_0805EC60();
extern void sub_080873D0();
@@ -59,20 +59,17 @@ extern void sub_0807DD50(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern Entity* sub_0805EB00(u32, u32, u32);
extern Entity* sub_0805EB2C(u32, u32, u32, u32, u32);
-extern u32 LoadExtraSpriteData(Entity*, u32*);
extern s32 sub_0806ED9C(Entity*, u32, u32);
extern void sub_0806FF60(Entity*, u32, u32);
extern void sub_0806FF88(Entity*, u32, u32);
extern void sub_0807000C(Entity*);
extern void sub_0805E47C(Entity*);
extern void sub_0805E584(Entity*);
-extern void ResolveEntityOnTop(Entity*, Entity*);
extern void sub_0806ED78(Entity*);
extern void sub_08068BEC(Entity*, u32);
extern void sub_08078778(Entity*);
extern s32 sub_0806ED9C(Entity*, u32, u32);
extern s32 sub_0806F078(Entity*, s32);
-extern void sub_08004274(Entity*);
extern void sub_0801D2B4(Entity*, u32);
extern void sub_0806FD3C(Entity*);
extern u32 sub_0801E99C(Entity*);
diff --git a/include/global.h b/include/global.h
index 13f67e6e..d312b7b2 100644
--- a/include/global.h
+++ b/include/global.h
@@ -47,4 +47,16 @@
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
+struct Coords16
+{
+ s16 x;
+ s16 y;
+} PACKED;
+
+struct UCoords16
+{
+ u16 x;
+ u16 y;
+};
+
#endif // GUARD_GLOBAL_H
diff --git a/include/greatFairy.h b/include/greatFairy.h
index 073f6a37..6c2654e3 100644
--- a/include/greatFairy.h
+++ b/include/greatFairy.h
@@ -3,14 +3,14 @@
extern u32 __modsi3(u32, u32);
extern void InitializeAnimation(Entity*, u32);
-extern void sub_08087380();
+extern void GreatFairy_InitializeAnimation(Entity*);
extern u32 CheckRoomFlag();
-extern Entity* sub_080873AC(Entity*, u32, u32);
+extern Entity* GreatFairy_CreateForm(Entity*, u32, u32);
extern void PositionRelative();
extern void CopyPosition();
extern void DoFade();
extern void PlaySFX();
-extern void sub_08004274();
+extern void GetNextFrame();
extern void sub_0805EC9C();
extern void sub_0805EC60();
extern void sub_080873D0();
@@ -19,24 +19,38 @@ extern void sub_080045D4();
extern void sub_0806F69C();
extern u32 Random();
-extern void (*gGreatFairy[11])(Entity*);
-extern void (*gGreatFairyBehaviors[6])(Entity*);
-extern void (*gGreatFairyWings[3])(Entity*);
-extern void (*gGreatFairyWake[2])(Entity*);
-extern void (*gGreatFairyMini[3])(Entity*);
-extern void (*gGreatFairyMiniAnim[3])(Entity*);
-extern void (*gGreatFairyDrip[2])(Entity*);
-extern void (*gGreatFairyRipple[2])(Entity*);
-extern void (*gGreatFairyBigRipple[2])(Entity*);
-extern void (*gGreatFairyEnergy[2])(Entity*);
-extern void (*gGreatFairyInteract1[4])(Entity*);
-extern void (*gGreatFairyInteract2[5])(Entity*);
-extern void (*gUnk_081207A4[2])(Entity*);
+
+enum {
+ BEHAVIORS,
+ WINGS,
+ WAKE,
+ MINI,
+ MINIAFFINE,
+ DROPLET,
+ RIPPLE,
+ BIGRIPPLE,
+ FORM8,
+ FORM9,
+};
+
+extern void (*const GreatFairy_Main[])(Entity*);
+extern void (*const GreatFairy_Behaviors[])(Entity*);
+extern void (*const GreatFairy_WingsBehaviors[])(Entity*);
+extern void (*const GreatFairy_WakeBehaviors[])(Entity*);
+extern void (*const GreatFairy_MiniBehaviors[])(Entity*);
+extern void (*const GreatFairy_MiniAffineBehaviors[])(Entity*);
+extern void (*const GreatFairy_DropletBehaviors[])(Entity*);
+extern void (*const GreatFairy_RippleBehaviors[])(Entity*);
+extern void (*const GreatFairy_BigRippleBehaviors[])(Entity*);
+extern void (*const GreatFairy_EnergyBehaviors[])(Entity*);
+extern void (*const GreatFairy_Form1Behaviors[])(Entity*);
+extern void (*const GreatFairy_Form2Behaviors[])(Entity*);
+extern void (*const gUnk_081207A4[])(Entity*);
extern u32 gUnk_0810C2E4;
extern RoomControls gRoomControls;
extern Entity gLinkEntity;
-extern s16 gGreatFairyRippleOffsets[10];
+extern const s16 GreatFairy_RippleOffsets[10];
extern u32 gUnk_02034350;
extern RoomVars gRoomVars;
extern Screen gScreen;
diff --git a/include/item.h b/include/item.h
index 74e207c3..18ba2620 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,8 +1,54 @@
-#include "global.h"
-
#ifndef ITEM_H
#define ITEM_H
+#include "global.h"
+#include "entity.h"
+
+typedef struct {
+ u8 unk;
+ u8 behaviorID;
+ u8 unk2;
+ u8 unk3;
+ u8 stateID;
+ u8 filler[4];
+ u8 unk4;
+ u8 filler2[4];
+ u8 unk5;
+} ItemBehavior;
+
+void extern CellOverwriteSet(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Sword(ItemBehavior*, u32);
+void extern Bomb(ItemBehavior*, u32);
+void extern Bomb(ItemBehavior*, u32);
+void extern Bow(ItemBehavior*, u32);
+void extern Bow(ItemBehavior*, u32);
+void extern sub_08075D14(ItemBehavior*, u32);
+void extern sub_08075D14(ItemBehavior*, u32);
+void extern Shield(ItemBehavior*, u32);
+void extern Shield(ItemBehavior*, u32);
+void extern Lantern(ItemBehavior*, u32);
+void extern Lantern(ItemBehavior*, u32);
+void extern GustJar(ItemBehavior*, u32);
+void extern PacciCane(ItemBehavior*, u32);
+void extern MoleMitts(ItemBehavior*, u32);
+void extern RocsCape(ItemBehavior*, u32);
+void extern sub_08076800(ItemBehavior*, u32);
+void extern CellOverwriteSet(ItemBehavior*, u32);
+void Ocarina(ItemBehavior*, u32);
+void extern CellOverwriteSet(ItemBehavior*, u32);
+void extern CellOverwriteSet(ItemBehavior*, u32);
+void extern CellOverwriteSet(ItemBehavior*, u32);
+void extern TryPickupObject(ItemBehavior*, u32);
+void extern JarEmpty(ItemBehavior*, u32);
+void extern JarEmpty(ItemBehavior*, u32);
+void extern JarEmpty(ItemBehavior*, u32);
+void extern JarEmpty(ItemBehavior*, u32);
+
/* On hold until naming conflicts are resolved */
/*
enum
@@ -127,15 +173,4 @@
LongSpin = 0x75
} ItemType;
*/
-typedef struct {
- u8 unk;
- u8 behaviorID;
- u8 unk2;
- u8 unk3;
- u8 stateID;
- u8 filler[4];
- u8 unk4;
- u8 filler2[4];
- u8 unk5;
-} ItemBehavior;
#endif \ No newline at end of file