summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-04-27 14:29:38 +0200
committerrobojumper <robojumper@gmail.com>2025-04-27 14:32:58 +0200
commitca2f6bde481292758263f5898a07da512f75b0ee (patch)
tree1aba9fdbc45b1507a1d35506bfa3b63072dd624d /include
parent225ce0d4ce99fa2c1b34a5486bbc0e0c084b62a6 (diff)
JPADynamicsBlock OK
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JParticle/JPABaseShape.h18
-rw-r--r--include/JSystem/JParticle/JPAExTexShape.h10
-rw-r--r--include/JSystem/JParticle/JPAParticle.h2
-rw-r--r--include/egg/math/eggVector.h4
4 files changed, 23 insertions, 11 deletions
diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h
index dccd5338..de68f2b7 100644
--- a/include/JSystem/JParticle/JPABaseShape.h
+++ b/include/JSystem/JParticle/JPABaseShape.h
@@ -91,13 +91,13 @@ public:
u32 getTilingT() const { return (mpData->mFlags >> 28) & 0x01; } // was 26
BOOL isGlblClrAnm() const { return mpData->mFlags & 0x00001000; }
BOOL isGlblTexAnm() const { return mpData->mFlags & 0x00004000; }
- BOOL isPrjTex() const { return mpData->mFlags & 0x00100000; }
- bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00200000); }
- bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x00400000); }
- bool isClipOn() const { return !!(mpData->mFlags & 0x00800000); }
- BOOL isTexCrdAnm() const { return mpData->mFlags & 0x01000000; }
- bool isNoDrawParent() const { return !!(mpData->mFlags & 0x08000000); }
- bool isNoDrawChild() const { return !!(mpData->mFlags & 0x10000000); }
+ BOOL isPrjTex() const { return mpData->mFlags & 0x00400000; } // was 0x00100000
+ bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00800000); } // was 0x00200000
+ bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x01000000); } // was 0x00400000
+ BOOL isClipOn() const { return (mpData->mFlags & 0x02000000); } // was 0x00800000
+ BOOL isTexCrdAnm() const { return mpData->mFlags & 0x04000000; } // was 0x01000000
+ bool isNoDrawParent() const { return !!((mpData->mFlags >> 29) & 1); } // was 0x08000000
+ bool isNoDrawChild() const { return !!((mpData->mFlags >> 30) & 1); } // was 0x10000000
BOOL isPrmAnm() const { return mpData->mClrFlg & 0x02; }
BOOL isEnvAnm() const { return mpData->mClrFlg & 0x08; }
@@ -177,6 +177,8 @@ void JPACalcClrIdxMerge(JPAEmitterWorkData*, JPABaseParticle*);
void JPACalcClrIdxRandom(JPAEmitterWorkData*, JPABaseParticle*);
void JPACalcColorCopy(JPAEmitterWorkData*, JPABaseParticle*);
+// SS addition
+void fn_8031C2C0(JPAEmitterWorkData*);
void JPADrawStripe(JPAEmitterWorkData*);
void JPADrawStripeX(JPAEmitterWorkData*);
void JPADrawEmitterCallBackB(JPAEmitterWorkData*);
@@ -208,6 +210,8 @@ void JPALoadTexAnm(JPAEmitterWorkData*, JPABaseParticle*);
void JPASetPointSize(JPAEmitterWorkData*, JPABaseParticle*);
void JPASetLineWidth(JPAEmitterWorkData*, JPABaseParticle*);
void JPALoadCalcTexCrdMtxAnm(JPAEmitterWorkData*, JPABaseParticle*);
+// SS addition
+void fn_8031A8C0(JPAEmitterWorkData*, JPABaseParticle*);
void JPARegistAlpha(JPAEmitterWorkData*, JPABaseParticle*);
void JPARegistEnv(JPAEmitterWorkData*, JPABaseParticle*);
void JPARegistAlphaEnv(JPAEmitterWorkData*, JPABaseParticle*);
diff --git a/include/JSystem/JParticle/JPAExTexShape.h b/include/JSystem/JParticle/JPAExTexShape.h
index 29e92344..91260f7d 100644
--- a/include/JSystem/JParticle/JPAExTexShape.h
+++ b/include/JSystem/JParticle/JPAExTexShape.h
@@ -1,6 +1,7 @@
#ifndef JPAEXTEXSHAPE_H
#define JPAEXTEXSHAPE_H
+#include "JSystem/JParticle/JPABaseShape.h"
#include "common.h"
class JPAEmitterWorkData;
@@ -16,8 +17,9 @@ struct JPAExTexShapeData {
/* 0x08 */ u32 mFlags;
/* 0x0C */ f32 mIndTexMtx[2][3];
- /* 0x24 */ s8 mExpScale;
- /* 0x25 */ u8 _0x25[0x4E - 0x25];
+ /* 0x24 */ u8 _0x24[0x4C - 0x24];
+ /* 0x4C */ u8 field_0x4C;
+ /* 0x4D */ s8 mExpScale;
/* 0x4E */ s8 mIndTexIdx;
/* 0x4F */ s8 mSecTexIdx;
};
@@ -31,14 +33,16 @@ public:
JPAExTexShape(u8 const*);
const f32* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; }
+ u8 getfield_0x4C() const { return mpData->field_0x4C; }
s8 getExpScale() const { return mpData->mExpScale; }
u8 getIndTexIdx() const { return mpData->mIndTexIdx; }
u8 getSecTexIdx() const { return mpData->mSecTexIdx; }
bool isUseIndirect() const { return !!(mpData->mFlags & 0x01); }
- bool isUseSecTex() const { return !!(mpData->mFlags & 0x0100); }
+ BOOL isUseSecTex() const { return (mpData->mFlags & 0x0100); }
public:
const JPAExTexShapeData* mpData;
+ void fn_8031DE80(JPABaseShape *bsp, f32);
};
void JPALoadExTex(JPAEmitterWorkData*);
diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h
index cc56b8e1..b0430430 100644
--- a/include/JSystem/JParticle/JPAParticle.h
+++ b/include/JSystem/JParticle/JPAParticle.h
@@ -31,7 +31,7 @@ public:
void setOffsetPosition(const EGG::Vector3f& pos) { mOffsetPosition.set(pos); }
void setOffsetPosition(f32 x, f32 y, f32 z) { mOffsetPosition.set(x, y, z); }
void getOffsetPosition(EGG::Vector3f& pos) { pos.set(mOffsetPosition); }
- u16 getRotateAngle() const { return mRotateAngle; }
+ s16 getRotateAngle() const { return mRotateAngle; }
void getGlobalPosition(EGG::Vector3f& pos) const { pos.set(mPosition); }
f32 getParticleScaleX() const { return mParticleScaleX; }
f32 getParticleScaleY() const { return mParticleScaleY; }
diff --git a/include/egg/math/eggVector.h b/include/egg/math/eggVector.h
index f1256a6a..34ccb324 100644
--- a/include/egg/math/eggVector.h
+++ b/include/egg/math/eggVector.h
@@ -36,6 +36,10 @@ struct Vector3f : public nw4r::math::VEC3 {
return *this;
}
+ void mul(const Vector3f &v, const Vector3f &w) {
+ set(v.x * w.x, v.y * w.y, v.z * w.z);
+ }
+
Vector3f &operator*=(const Vector3f &v) {
set(x * v.x, y * v.y, z * v.z);
return *this;