summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2025-07-31 05:19:46 -0400
committerGitHub <noreply@github.com>2025-07-31 02:19:46 -0700
commite0bbad1f3fd4e3a71ca3a9220de1fb1a9ddcd1ee (patch)
tree2eb3101e9672288ab95f20981cbdbb0429ffacc7 /include
parent418e39356dc0e9b7ff0995a2530be9d1bd7c367d (diff)
Miscellaneous match improvements (#2562)
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_mant.h50
-rw-r--r--include/d/actor/d_a_npc_zant.h14
-rw-r--r--include/d/actor/d_a_tag_kmsg.h2
-rw-r--r--include/m_Do/m_Do_mtx.h4
4 files changed, 50 insertions, 20 deletions
diff --git a/include/d/actor/d_a_mant.h b/include/d/actor/d_a_mant.h
index b1304a3c89..53ae222994 100644
--- a/include/d/actor/d_a_mant.h
+++ b/include/d/actor/d_a_mant.h
@@ -11,24 +11,42 @@
*/
class daMant_packet_c : public J3DPacket {
- public:
- /* 80861298 */ void draw();
- /* 80862BA4 */ ~daMant_packet_c();
+public:
+ /* 80861298 */ void draw();
+ /* 80862BA4 */ ~daMant_packet_c();
+
+ /* 0x0010 */ Mtx mMtx;
+ /* 0x0040 */ Mtx mMtx2;
+ /* 0x0070 */ dKy_tevstr_c* mTevStr;
+ /* 0x0074 */ u8 field_0x74;
+ /* 0x0078 */ cXyz mPos[2][169];
+ /* 0x1050 */ cXyz mNrm[2][169];
+ /* 0x2028 */ u8 field_0x2028;
+ /* 0x2029 */ u8 mArg0;
+
+ daMant_packet_c() {
+ field_0x74 = 0;
+ }
+
+ cXyz* getPos() {
+ return &mPos[field_0x74][0];
+ }
+
+ cXyz* getNrm() {
+ return &mNrm[field_0x74][0];
+ }
+
+ void setTevStr(dKy_tevstr_c* tevStr) {
+ mTevStr = tevStr;
+ }
- /* 0x0010 */ Mtx mMtx;
- /* 0x0040 */ Mtx mMtx2;
- /* 0x0070 */ dKy_tevstr_c* field_0x70;
- /* 0x0074 */ u8 field_0x74;
- /* 0x0075 */ u8 field_0x75[0x78 - 0x75];
- /* 0x0078 */ cXyz mPos[338];
- /* 0x1050 */ cXyz mNrm[338];
- /* 0x2028 */ u8 field_0x2028;
- /* 0x2029 */ u8 mArg0;
- /* 0x202a */ u8 field_0x202a[0x202b - 0x202a];
+ MtxP getMtx2() {
+ return mMtx2;
+ }
- cXyz* getPos() {
- return this->mPos + this->field_0x74 * 0xa9;
- }
+ MtxP getMtx() {
+ return mMtx;
+ }
};
struct mant_j_s {
public:
diff --git a/include/d/actor/d_a_npc_zant.h b/include/d/actor/d_a_npc_zant.h
index 05ab7c4c6c..80c4b16f93 100644
--- a/include/d/actor/d_a_npc_zant.h
+++ b/include/d/actor/d_a_npc_zant.h
@@ -60,7 +60,7 @@ public:
static cutFunc mCutList[1];
private:
- /* 0xE40 */ u8 field_0xe40[0xe44- 0xe40];
+ /* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
/* 0xE44 */ dCcD_Cyl mCyl;
/* 0xF80 */ u8 mType;
/* 0xF81 */ u8 field_0xf81[0xf84 - 0xf81];
@@ -73,7 +73,7 @@ STATIC_ASSERT(sizeof(daNpc_Zant_c) == 0xfa0);
class daNpc_Zant_Param_c {
public:
- /* 80B6E93C */ ~daNpc_Zant_Param_c() {};
+ /* 80B6E93C */ virtual ~daNpc_Zant_Param_c() {}
struct Data {
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
@@ -112,11 +112,19 @@ public:
/* 0x7C */ f32 field_0x7c;
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
- /* 0x88 */ f32 field_0x88;
+ /* 0x88 */ f32 field_0x88;
};
static const Data m;
};
+class daNpc_Zant_HIO_c {
+public:
+ virtual ~daNpc_Zant_HIO_c() {}
+
+#if DEBUG
+ daNpc_Zant_Param_c::Data param;
+#endif
+};
#endif /* D_A_NPC_ZANT_H */
diff --git a/include/d/actor/d_a_tag_kmsg.h b/include/d/actor/d_a_tag_kmsg.h
index 209ebe9300..4639001fa0 100644
--- a/include/d/actor/d_a_tag_kmsg.h
+++ b/include/d/actor/d_a_tag_kmsg.h
@@ -70,7 +70,7 @@ public:
}
u32 getTalkAngle() {
- u32 talkAngle = (fopAcM_GetParam(this) & 0xe0) >> 5;
+ u32 talkAngle = (fopAcM_GetParam(this) >> 5) & 0x7;
if (talkAngle == 7) {
return 0;
} else {
diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h
index 12e730c9a6..40fe3577ac 100644
--- a/include/m_Do/m_Do_mtx.h
+++ b/include/m_Do/m_Do_mtx.h
@@ -100,6 +100,10 @@ inline void cMtx_multVecArray(Mtx mtx, const Vec* src, Vec* dst, u32 count) {
mDoMtx_multVecArray(mtx, src, dst, count);
}
+inline void cMtx_inverseTranspose(const Mtx a, Mtx b) {
+ mDoMtx_inverseTranspose(a, b);
+}
+
inline void mDoMtx_multVecZero(CMtxP param_0, Vec* param_1) {
param_1->x = param_0[0][3];
param_1->y = param_0[1][3];