summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2023-07-06 16:30:11 -0700
committerTakaRikka <takarikka@outlook.com>2023-07-06 16:30:11 -0700
commit2c8bfedbbae84d3e8a73a81099e7b33396a061af (patch)
tree397a7668fffab6beb9a493e69bb52c313deaa0ac /include
parent93d82399b3a0a459fae48eae19101968c2e3d343 (diff)
d_a_kytag10 almost done
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JGeometry.h21
-rw-r--r--include/JSystem/JParticle/JPAParticle.h7
-rw-r--r--include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h18
3 files changed, 45 insertions, 1 deletions
diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h
index e01e72614a..dd984bcc85 100644
--- a/include/JSystem/JGeometry.h
+++ b/include/JSystem/JGeometry.h
@@ -31,12 +31,33 @@ struct TVec3<s16> {
}
};
+inline void setTVec3f(const f32* vec_a, f32* vec_b) {
+ const register f32* v_a = vec_a;
+ register f32* v_b = vec_b;
+
+ register f32 a_x;
+ register f32 b_x;
+
+ asm {
+ psq_l a_x, 0(v_a), 0, 0 /* qr0 */
+ lfs b_x, 8(v_a)
+ psq_st a_x, 0(v_b), 0, 0 /* qr0 */
+ stfs b_x, 8(v_b)
+ };
+}
+
template <>
struct TVec3<f32> {
f32 x;
f32 y;
f32 z;
+ /* TVec3(const Vec& i_vec) {
+ setTVec3f(&i_vec.x, &x);
+ } */
+
+ /* TVec3() {} */
+
operator Vec*() { return (Vec*)&x; }
operator const Vec*() const { return (Vec*)&x; }
diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h
index 3448720ae0..ed4fe9142a 100644
--- a/include/JSystem/JParticle/JPAParticle.h
+++ b/include/JSystem/JParticle/JPAParticle.h
@@ -250,6 +250,13 @@ public:
void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); }
void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); }
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
+ void setVolumeSize(u16 size) { mVolumeSize = size; }
+ void setLifeTime(s16 lifetime) { mLifeTime = lifetime; }
+
+ void setGlobalParticleScale(const JGeometry::TVec3<f32>& scale) {
+ mGlobalPScl.set(scale.x, scale.y);
+ }
+
// void setGlobalScale(const JGeometry::TVec3<f32>& scale) {
// mGlobalScl = scale;
// mGlobalPScl = scale;
diff --git a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h
index 2fde93b7be..8ac6b3cf82 100644
--- a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h
+++ b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h
@@ -1,6 +1,22 @@
#ifndef D_A_KYTAG10_H
#define D_A_KYTAG10_H
-#include "dolphin/types.h"
+#include "f_op/f_op_actor_mng.h"
+
+struct dPath;
+
+class kytag10_class : public fopAc_ac_c {
+public:
+ /* 0x568 */ dPath* mpPath;
+ /* 0x56C */ JPABaseEmitter* mpEmitter1;
+ /* 0x570 */ JPABaseEmitter* mpEmitter2;
+ /* 0x574 */ cXyz mEmitterPtclScale;
+ /* 0x580 */ s16 mEmitterVolSize;
+ /* 0x582 */ s16 mEmitterLifeTime;
+ /* 0x584 */ u8 field_0x584;
+ /* 0x588 */ cXyz field_0x588;
+ /* 0x594 */ f32 field_0x594;
+ /* 0x598 */ int mPathPoint;
+};
#endif /* D_A_KYTAG10_H */