summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorlepelog <25211966+lepelog@users.noreply.github.com>2025-12-02 17:44:48 +0100
committerlepelog <25211966+lepelog@users.noreply.github.com>2025-12-02 17:44:48 +0100
commit08844fb5da445344613971b66e7fdc9ff55290ac (patch)
treeb7c7f69b697349fd267e67fa7a482bb16038cf3a /include/d
parent4e39bcca32c51cc0fb109d1a6918828499da8309 (diff)
start with d_t_insect
Diffstat (limited to 'include/d')
-rw-r--r--include/d/a/obj/d_a_obj_base.h7
-rw-r--r--include/d/t/d_t_insect.h28
2 files changed, 33 insertions, 2 deletions
diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h
index 1faa9589..b41b517a 100644
--- a/include/d/a/obj/d_a_obj_base.h
+++ b/include/d/a/obj/d_a_obj_base.h
@@ -220,7 +220,14 @@ public:
fProfile::PROFILE_NAME_e actorId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2,
u32 roomId
);
+
// These may not belong here
+ // fn_8002F190
+ // TODO: return type is probably a superclass for all insects
+ static dAcBase_c* createInsectActor(
+ dAcBase_c* parent,
+ fProfile::PROFILE_NAME_e actorId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2, s32 roomId
+ );
static dAcBase_c *createActorUnkGroup3(
fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale,
u32 params2
diff --git a/include/d/t/d_t_insect.h b/include/d/t/d_t_insect.h
index 25287d12..cd3b4e0b 100644
--- a/include/d/t/d_t_insect.h
+++ b/include/d/t/d_t_insect.h
@@ -2,12 +2,13 @@
#define D_T_INSECT_H
#include "d/a/d_a_base.h"
+#include "m/m_vec.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dTgInsect_c : public dAcBase_c {
public:
- dTgInsect_c() : mStateMgr(*this, sStateID::null) {}
+ dTgInsect_c() : mStateMgr(*this, sStateID::null), unk26C(0), unk270(0), unk274(0) {}
virtual ~dTgInsect_c() {}
STATE_FUNC_DECLARE(dTgInsect_c, Wait);
@@ -16,7 +17,30 @@ public:
STATE_FUNC_DECLARE(dTgInsect_c, End);
private:
- /* 0x??? */ STATE_MGR_DECLARE(dTgInsect_c);
+ /* 0x0FC */ STATE_MGR_DECLARE(dTgInsect_c);
+ /* 0x138 */ dAcRef_c<dAcBase_c> mLinks[16];
+ /* 0x1F8 */ u8 unk1F8[0x208-0x1F8];
+ /* 0x208 */ s32 unk208[16];
+ /* 0x248 */ s32 mInsectCount;
+ /* 0x24C */ u8 unk24C;
+ /* 0x24D */ u8 unk24D;
+ /* 0x24E */ u8 unk24E;
+ /* 0x24F */ u8 unk24F;
+ /* 0x250 */ u8 unk250[16];
+ /* 0x260 */ u8 unk260[0x26C-0x260];
+ /* 0x26C */ s32 unk26C;
+ /* 0x270 */ s32 unk270;
+ /* 0x274 */ s32 unk274;
+
+ s32 getSpawnSubtype() const {
+ return (mParams >> 8 & 0xF);
+ }
+ s32 getSubtype() const {
+ return (mParams >> 4 & 0xF);
+ }
+ void spawnInsect(s32 index);
+ bool shouldSpawn();
+ bool someGroundCheck(const mVec3_c &pos,s32 param_3);
};
#endif