diff options
| author | theo3 <arisstephenson2@gmail.com> | 2023-12-30 20:05:32 -0800 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2023-12-30 20:05:32 -0800 |
| commit | 201955ea052a5188f2e59bdcdbf6c52ff158ee66 (patch) | |
| tree | 66474a7515b56c90e1d0b94a0a39f42da6677d71 /include | |
| parent | 37714644960c56650dd1067b86aafa685eaf01f4 (diff) | |
create enemy struct and enemy flags
Diffstat (limited to 'include')
| -rw-r--r-- | include/enemy.h | 46 | ||||
| -rw-r--r-- | include/functions.h | 4 | ||||
| -rw-r--r-- | include/room.h | 4 |
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 |
