summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/enemy.h46
-rw-r--r--include/functions.h4
-rw-r--r--include/room.h4
3 files changed, 41 insertions, 13 deletions
diff --git a/include/enemy.h b/include/enemy.h
index d9bc0a76..28a236ab 100644
--- a/include/enemy.h
+++ b/include/enemy.h
@@ -12,7 +12,35 @@
#include "entity.h"
#include "projectile.h"
-bool32 EnemyInit(Entity* this);
+#define EM_FLAG_BOSS (1 << 0)
+#define EM_FLAG_BOSS_KILLED (1 << 1)
+#define EM_FLAG_HAS_HOME (1 << 2)
+#define EM_FLAG_NO_DEATH_FX (1 << 3)
+#define EM_FLAG_SUPPORT (1 << 4)
+#define EM_FLAG_CAPTAIN (1 << 5)
+#define EM_FLAG_MONITORED (1 << 6)
+
+typedef struct {
+ Entity base;
+ Entity* child;
+ u8 idx;
+ u8 enemyFlags;
+ u8 rangeX;
+ u8 rangeY;
+ s16 homeX;
+ s16 homeY;
+ /*0x74*/ union SplitHWord field_0x74;
+ /*0x76*/ union SplitHWord field_0x76;
+ /*0x78*/ union SplitHWord field_0x78;
+ /*0x7a*/ union SplitHWord field_0x7a;
+ /*0x7c*/ union SplitWord field_0x7c;
+ /*0x80*/ union SplitHWord field_0x80;
+ /*0x82*/ union SplitHWord field_0x82;
+ /*0x84*/ union SplitHWord cutsceneBeh;
+ /*0x86*/ union SplitHWord field_0x86;
+} Enemy;
+
+bool32 EnemyInit(Enemy* this);
/**
* 0: _OnTick
* 1: _OnCollision
@@ -25,13 +53,13 @@ u32 GetNextFunction(Entity*);
void EnemyFunctionHandler(Entity*, EntityActionArray);
void EnemyFunctionHandlerAfterCollision(Entity*, void (*const[])());
void GenericKnockback(Entity*);
-Entity* CreateDeathFx(Entity*, u32, u32);
+void EnemyCreateDeathFX(Enemy*, u32, u32);
void sub_0804A720(Entity*);
bool32 sub_08049FDC(Entity*, u32);
-Entity* Create0x68FX(Entity*, u32);
-void SetChildOffset(Entity*, s32, s32, s32);
-Entity* CreateProjectileWithParent(Entity*, u8, u8);
+Entity* EnemyCreateFX(Entity*, u32);
+void EnemySetFXOffset(Entity*, s32, s32, s32);
+Entity* EnemyCreateProjectile(Entity*, u32, u32);
void GenericDeath(Entity*);
void sub_08002724(void*, u8*);
@@ -44,13 +72,13 @@ Entity* sub_08049DF4(u32);
u32 sub_0804A044(Entity*, Entity*, u32);
s32 sub_080012DC(Entity*);
-void sub_0804AA1C(Entity*);
+void EnemyDetachFX(Entity*);
bool32 sub_08049F1C(Entity*, Entity*, s32);
bool32 PlayerInRange(Entity*, u32, s32);
-void sub_0804A4E4(Entity*, Entity*);
+void EnemyCopyParams(Entity*, Entity*);
void GenericKnockback2(Entity*);
-typedef enum {
+enum {
/*0x00*/ OCTOROK,
/*0x01*/ CHUCHU,
/*0x02*/ LEEVER,
@@ -154,7 +182,7 @@ typedef enum {
/*0x64*/ ENEMY_64,
/*0x65*/ TREE_ITEM,
/*0x66*/ ENEMY_66
-} Enemy;
+};
void Octorok();
void Chuchu();
diff --git a/include/functions.h b/include/functions.h
index 1caeb76d..2d843967 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -61,7 +61,7 @@ extern void sub_080027EA(Entity*, u32, u32);
extern void sub_080028E0(Entity*);
extern u32 sub_080040A2(Entity*);
extern u32 sub_080040D8(Entity*, u8*, s32, s32);
-extern void sub_08004168(Entity*);
+extern void SnapToTile(Entity*);
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
extern u32 sub_080041DC(Entity*, u32, u32);
extern void sub_080042BA(Entity*, u32);
@@ -81,7 +81,7 @@ extern void UpdateUIElements(void);
extern void sub_0801E104(void);
extern void sub_08030118(u32);
extern void sub_0803C0AC(Entity*);
-extern void sub_08049CF4(Entity*);
+extern void EnemyDisableRespawn(Entity*);
extern u32 sub_0804A024(Entity*, u32, u32);
extern u32 IsMinishItem(u32);
extern void DisableRandomDrops();
diff --git a/include/room.h b/include/room.h
index 3b0ff0d2..f9201826 100644
--- a/include/room.h
+++ b/include/room.h
@@ -88,10 +88,10 @@ typedef struct {
u8 area;
u8 room;
u16 unk_02;
- u32 unk_04;
+ u32 enemyBits;
} RoomMemory;
-extern RoomMemory* gUnk_020354B0;
+extern RoomMemory* gCurrentRoomMemory;
extern RoomMemory gRoomMemory[];
// Packets used to store which entities to load in a room