summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2023-01-04 23:51:05 -0800
committerTakaRikka <takarikka@outlook.com>2023-01-04 23:51:05 -0800
commit5fa8a73aedbe407d85d72f5c15abeadcfa98cd85 (patch)
tree0ce5e510e3ac28022f314b1d23b71ae7badc466e /include
parentedcc309734ea8bfcc6592f9306b878b5108ec7b3 (diff)
d_a_obj_enemy_create OK
Diffstat (limited to 'include')
-rw-r--r--include/f_op/f_op_actor.h8
-rw-r--r--include/f_op/f_op_actor_mng.h4
-rw-r--r--include/rel/d/a/obj/d_a_obj_enemy_create/d_a_obj_enemy_create.h59
3 files changed, 69 insertions, 2 deletions
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index ad64ba223b..fec05717df 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -7,9 +7,15 @@
#include "dolphin/mtx/mtx.h"
#include "f_pc/f_pc_leaf.h"
+struct actor_method_class {
+ /* 0x00 */ process_method_class mBase;
+ /* 0x10 */ process_method_func mpDrawFunc;
+ /* 0x14 */ u8 field_0x14[0xC]; // Likely padding
+};
+
struct actor_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
- /* 0x24 */ leafdraw_method_class* mSubMtd;
+ /* 0x24 */ actor_method_class* mSubMtd;
/* 0x28 */ int field_0x28; // mStatus
/* 0x2C */ u8 field_0x2c; // mActorType
/* 0x2D */ u8 field_0x2d; // mCullType
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index d183ae6dec..78c3c07c2d 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -186,6 +186,10 @@ inline cXyz& fopAcM_GetPosition_p(fopAc_ac_c* pActor) {
return pActor->current.pos;
}
+inline cXyz& fopAcM_GetPosition(fopAc_ac_c* pActor) {
+ return pActor->current.pos;
+}
+
inline cXyz& fopAcM_GetOldPosition_p(fopAc_ac_c* pActor) {
return pActor->next.pos;
}
diff --git a/include/rel/d/a/obj/d_a_obj_enemy_create/d_a_obj_enemy_create.h b/include/rel/d/a/obj/d_a_obj_enemy_create/d_a_obj_enemy_create.h
index 1bed0ee3e3..64ad81de56 100644
--- a/include/rel/d/a/obj/d_a_obj_enemy_create/d_a_obj_enemy_create.h
+++ b/include/rel/d/a/obj/d_a_obj_enemy_create/d_a_obj_enemy_create.h
@@ -1,6 +1,63 @@
#ifndef D_A_OBJ_ENEMY_CREATE_H
#define D_A_OBJ_ENEMY_CREATE_H
-#include "dolphin/types.h"
+#include "d/com/d_com_inf_game.h"
+
+class daObjE_CREATE_c : public fopAc_ac_c {
+public:
+ /* 80BE31BC */ void NormalAction();
+ /* 80BE345C */ void SearchAction();
+ /* 80BE34A0 */ void LoopAction();
+ /* 80BE3544 */ void Action();
+ /* 80BE359C */ int Execute();
+ /* 80BE35C0 */ int Delete();
+ /* 80BE3618 */ void NameChk();
+ /* 80BE3770 */ int create();
+
+private:
+ /* 0x568 */ u8 field_0x568;
+ /* 0x569 */ u8 mEnemyNum;
+ /* 0x56A */ u8 mActivateSw;
+ /* 0x56B */ u8 mDeactivateSw;
+ /* 0x56C */ u8 mEndLoopSw;
+ /* 0x56E */ csXyz mEnemyAngle;
+ /* 0x574 */ s16 mEnemyProcName;
+ /* 0x578 */ u32 mEnemyParams;
+ /* 0x57C */ u32* mActorList;
+ /* 0x580 */ u8 mActionMode;
+ /* 0x582 */ s16 mKillCheckDelayTimer;
+ /* 0x584 */ u8 mAction;
+ /* 0x588 */ u8 unused[12];
+}; // Size: 0x594
+
+enum daObjE_EnemyType {
+ ENEMY_NONE,
+ ENEMY_KEESE,
+ ENEMY_RAT,
+ ENEMY_CHU,
+ ENEMY_CHU2,
+ ENEMY_BABY_GOHMA,
+ ENEMY_BUBBLE,
+ ENEMY_BOKOBLIN,
+ ENEMY_LIZALFOS,
+ ENEMY_SHADOW_BEAST,
+ ENEMY_SHADOW_VERMIN,
+ ENEMY_SHADOW_KEESE,
+ ENEMY_BOKOBLIN2,
+};
+
+enum daObjE_Action {
+ ACT_NORMAL,
+ ACT_SEARCH,
+ ACT_LOOP,
+ ACT_DEFAULT = 0xF,
+};
+
+enum daObjE_Mode {
+ MODE_CREATE,
+ MODE_WAIT,
+ MODE_KILL_CHECK,
+ MODE_END,
+};
#endif /* D_A_OBJ_ENEMY_CREATE_H */