summaryrefslogtreecommitdiff
path: root/include/d/a/e
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2024-09-12 22:36:34 +0200
committerGitHub <noreply@github.com>2024-09-12 16:36:34 -0400
commit1180e1f4860d62bccd64bfa2a29eaeebd2c4b019 (patch)
treece6e231ef46aacbdad52ad7f6cbcd9d02dba555e /include/d/a/e
parente2c4bb7be7fa731a335bce4bc22283d899133e39 (diff)
m3d (#13)
* Initial M3d Pass * `m_bmdl` and `m_bline` left --------- Co-authored-by: elijah-thomas774 <elijahthomas774@gmail.com> Co-authored-by: Elijah Thomas <42302100+elijah-thomas774@users.noreply.github.com>
Diffstat (limited to 'include/d/a/e')
-rw-r--r--include/d/a/e/d_a_e_hb_leaf.h59
-rw-r--r--include/d/a/e/d_a_en_base.h10
2 files changed, 69 insertions, 0 deletions
diff --git a/include/d/a/e/d_a_e_hb_leaf.h b/include/d/a/e/d_a_e_hb_leaf.h
new file mode 100644
index 00000000..5ac98cd0
--- /dev/null
+++ b/include/d/a/e/d_a_e_hb_leaf.h
@@ -0,0 +1,59 @@
+#ifndef D_A_E_HB_LEAF_H
+#define D_A_E_HB_LEAF_H
+
+#include <c/c_math.h>
+#include <d/a/obj/d_a_obj_base.h>
+#include <m/m3d/m_anmmdl.h>
+#include <m/m3d/m_anmtexpat.h>
+
+extern "C" bool fn_800B9D80(f32, f32, f32 *, int, const mVec3_c &, u32);
+
+class dAcEhb_leaf_c : public dAcObjBase_c {
+public:
+ dAcEhb_leaf_c() : someFloat(unkFloat0), field_0x3CC(0), field_0x3DE(0) {}
+ virtual ~dAcEhb_leaf_c() {}
+ virtual bool createHeap() override;
+ virtual int create() override;
+ virtual int actorExecute() override;
+ virtual int draw() override;
+ virtual int doDelete() override;
+
+ void setAnm(const char *anm, f32 pos);
+
+private:
+ const static f32 unkFloat0;
+ const static f32 unkFloat1;
+
+ m3d::mdlAnmChr mModel; // 0x330
+ m3d::anmTexPat_c mAnm; // 0x398
+
+ f32 someFloat; // 0x3C4
+ UNKWORD field_0x3C8; // 0x3C8
+ u8 field_0x3CC; // 0x3CC
+ mVec3_c mStartingPos; // 0x3D0
+ u16 someRot; // 0x3DC
+ u8 field_0x3DE; // 0x3DE
+ u8 mType; // 0x3DF
+
+ bool isNearZero() {
+ return fabsf(someFloat) <= FLT_EPSILON;
+ }
+
+ bool isHidden() {
+ return mType != 0 && isNearZero() ? true : false;
+ }
+
+ void doCheck() {
+ fn_800B9D80(10.0f, 0.2f, &someFloat, roomid, mStartingPos, 0);
+ }
+
+ int getParam1() {
+ return params & 7;
+ }
+
+ int getParam2() {
+ return params >> 7 & 3;
+ }
+};
+
+#endif
diff --git a/include/d/a/e/d_a_en_base.h b/include/d/a/e/d_a_en_base.h
new file mode 100644
index 00000000..a24957ba
--- /dev/null
+++ b/include/d/a/e/d_a_en_base.h
@@ -0,0 +1,10 @@
+#ifndef D_A_EN_BASE_H
+#define D_A_EN_BASE_H
+
+#include "d/a/obj/d_a_obj_base.h"
+
+// Ghidra: ActorEnemyBase
+// size:
+// non-official name
+class dAcEnBase_c : public dAcObjBase_c {};
+#endif