diff options
| author | robojumper <robojumper@gmail.com> | 2024-09-12 22:36:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-12 16:36:34 -0400 |
| commit | 1180e1f4860d62bccd64bfa2a29eaeebd2c4b019 (patch) | |
| tree | ce6e231ef46aacbdad52ad7f6cbcd9d02dba555e /include/d/a/e | |
| parent | e2c4bb7be7fa731a335bce4bc22283d899133e39 (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.h | 59 | ||||
| -rw-r--r-- | include/d/a/e/d_a_en_base.h | 10 |
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 |
