JPADynamicsBlock OK

This commit is contained in:
robojumper
2025-04-27 14:29:38 +02:00
parent 225ce0d4ce
commit ca2f6bde48
11 changed files with 136 additions and 74 deletions
+11 -7
View File
@@ -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*);
+7 -3
View File
@@ -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*);
+1 -1
View File
@@ -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; }
+4
View File
@@ -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;