From 1180e1f4860d62bccd64bfa2a29eaeebd2c4b019 Mon Sep 17 00:00:00 2001 From: robojumper Date: Thu, 12 Sep 2024 22:36:34 +0200 Subject: m3d (#13) * Initial M3d Pass * `m_bmdl` and `m_bline` left --------- Co-authored-by: elijah-thomas774 Co-authored-by: Elijah Thomas <42302100+elijah-thomas774@users.noreply.github.com> --- include/d/a/e/d_a_e_hb_leaf.h | 59 +++++++++++++++++++++++++++++++++++++++++++ include/d/a/e/d_a_en_base.h | 10 ++++++++ 2 files changed, 69 insertions(+) create mode 100644 include/d/a/e/d_a_e_hb_leaf.h create mode 100644 include/d/a/e/d_a_en_base.h (limited to 'include/d/a/e') 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 +#include +#include +#include + +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 -- cgit v1.2.3