diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JGeometry.h | 18 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPABaseShape.h | 118 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPADynamicsBlock.h | 46 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAEmitter.h | 4 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAExTexShape.h | 4 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAFieldBlock.h | 82 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAKeyBlock.h | 5 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAList.h | 16 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAParticle.h | 6 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAResource.h | 32 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAResourceManager.h | 14 |
11 files changed, 172 insertions, 173 deletions
diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index 513d5242dd..696d2f60a4 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -286,12 +286,7 @@ struct TVec3<f32> : public Vec { } void scale(__REGISTER f32 sc) { -#if DEBUG - x *= sc; - y *= sc; - z *= sc; -#else -#ifdef __MWERKS__ +#if PLATFORM_GCN && defined(__MWERKS__) __REGISTER f32 z; __REGISTER f32 x_y; __REGISTER f32* dst = &x; @@ -305,12 +300,15 @@ struct TVec3<f32> : public Vec { ps_muls0 zres, z, sc psq_st zres, 8(dst), 1, 0 }; -#endif +#else + x *= sc; + y *= sc; + z *= sc; #endif } void scale(__REGISTER f32 sc, const TVec3<f32>& other) { -#ifdef __MWERKS__ +#if PLATFORM_GCN && defined(__MWERKS__) __REGISTER const f32* src = &other.x; __REGISTER f32 z; __REGISTER f32 x_y; @@ -325,6 +323,10 @@ struct TVec3<f32> : public Vec { ps_muls0 zres, z, sc psq_st zres, 8(dst), 1, 0 }; +#else + x = other.x * sc; + y = other.y * sc; + z = other.z * sc; #endif } diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h index 35dcbb83ad..6e7605baac 100644 --- a/include/JSystem/JParticle/JPABaseShape.h +++ b/include/JSystem/JParticle/JPABaseShape.h @@ -27,11 +27,11 @@ struct JPABaseShapeData { /* 0x1C */ u8 mAlphaRef1; /* 0x1D */ u8 mZModeCfg; /* 0x1E */ u8 mTexFlg; - /* 0x1F */ u8 mTexAnmNum; + /* 0x1F */ u8 texAnmKeyNum; /* 0x20 */ u8 mTexIdx; /* 0x21 */ u8 mClrFlg; - /* 0x22 */ u8 mClrPrmKeyNum; - /* 0x23 */ u8 mClrEnvKeyNum; + /* 0x22 */ u8 prmAnmKeyNum; + /* 0x23 */ u8 envAnmKeyNum; /* 0x24 */ s16 mClrAnmFrmMax; /* 0x26 */ GXColor mClrPrm; /* 0x2A */ GXColor mClrEnv; @@ -57,62 +57,62 @@ public: static GXTevColorArg st_ca[6][4]; static GXTevAlphaArg st_aa[2][4]; - GXBlendMode getBlendMode() const { return st_bm[mpData->mBlendModeCfg & 0x03]; } - GXBlendFactor getBlendSrc() const { return st_bf[(mpData->mBlendModeCfg >> 2) & 0x0F]; } - GXBlendFactor getBlendDst() const { return st_bf[(mpData->mBlendModeCfg >> 6) & 0x0F]; } - GXLogicOp getLogicOp() const { return st_lo[(mpData->mBlendModeCfg >> 10) & 0x0F]; } - GXBool getZCompLoc() const { return (GXBool)((mpData->mZModeCfg >> 5) & 0x01); } - - GXBool getZEnable() const { return (GXBool)(mpData->mZModeCfg & 0x01); } - GXCompare getZCmp() const { return st_c[(mpData->mZModeCfg >> 1) & 0x07]; } - GXBool getZUpd() const { return (GXBool)((mpData->mZModeCfg >> 4) & 0x01); } - - GXCompare getAlphaCmp0() const { return st_c[mpData->mAlphaCompareCfg & 0x07]; } - u8 getAlphaRef0() const { return mpData->mAlphaRef0; } - GXAlphaOp getAlphaOp() const { return st_ao[(mpData->mAlphaCompareCfg >> 3) & 0x03]; } - GXCompare getAlphaCmp1() const { return st_c[(mpData->mAlphaCompareCfg >> 5) & 0x07]; } - u8 getAlphaRef1() const { return mpData->mAlphaRef1; } - - const GXTevColorArg* getTevColorArg() const { return st_ca[(mpData->mFlags >> 0x0F) & 0x07]; } - const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(mpData->mFlags >> 0x12) & 0x01]; } - - u32 getType() const { return (mpData->mFlags >> 0) & 0x0F; } - u32 getDirType() const { return (mpData->mFlags >> 4) & 0x07; } - u32 getRotType() const { return (mpData->mFlags >> 7) & 0x07; } - u32 getBasePlaneType() const { return (mpData->mFlags >> 10) & 0x01; } - u32 getTilingS() const { return (mpData->mFlags >> 25) & 0x01; } - u32 getTilingT() const { return (mpData->mFlags >> 26) & 0x01; } - 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 isPrmAnm() const { return mpData->mClrFlg & 0x02; } - BOOL isEnvAnm() const { return mpData->mClrFlg & 0x08; } - u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; } - s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; } - void getPrmClr(GXColor* dst) { *dst = mpData->mClrPrm; } - void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; } - void getEnvClr(GXColor* dst) { *dst = mpData->mClrEnv; } - void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; } - - BOOL isTexAnm() const { return mpData->mTexFlg & 0x01; } - u8 getTexAnmType() const { return (mpData->mTexFlg >> 2) & 0x07; } - u32 getTexIdx() const { return mpData->mTexIdx; } + GXBlendMode getBlendMode() const { return st_bm[pBsd->mBlendModeCfg & 0x03]; } + GXBlendFactor getBlendSrc() const { return st_bf[(pBsd->mBlendModeCfg >> 2) & 0x0F]; } + GXBlendFactor getBlendDst() const { return st_bf[(pBsd->mBlendModeCfg >> 6) & 0x0F]; } + GXLogicOp getLogicOp() const { return st_lo[(pBsd->mBlendModeCfg >> 10) & 0x0F]; } + GXBool getZCompLoc() const { return (GXBool)((pBsd->mZModeCfg >> 5) & 0x01); } + + GXBool getZEnable() const { return (GXBool)(pBsd->mZModeCfg & 0x01); } + GXCompare getZCmp() const { return st_c[(pBsd->mZModeCfg >> 1) & 0x07]; } + GXBool getZUpd() const { return (GXBool)((pBsd->mZModeCfg >> 4) & 0x01); } + + GXCompare getAlphaCmp0() const { return st_c[pBsd->mAlphaCompareCfg & 0x07]; } + u8 getAlphaRef0() const { return pBsd->mAlphaRef0; } + GXAlphaOp getAlphaOp() const { return st_ao[(pBsd->mAlphaCompareCfg >> 3) & 0x03]; } + GXCompare getAlphaCmp1() const { return st_c[(pBsd->mAlphaCompareCfg >> 5) & 0x07]; } + u8 getAlphaRef1() const { return pBsd->mAlphaRef1; } + + const GXTevColorArg* getTevColorArg() const { return st_ca[(pBsd->mFlags >> 0x0F) & 0x07]; } + const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(pBsd->mFlags >> 0x12) & 0x01]; } + + u32 getType() const { return (pBsd->mFlags >> 0) & 0x0F; } + u32 getDirType() const { return (pBsd->mFlags >> 4) & 0x07; } + u32 getRotType() const { return (pBsd->mFlags >> 7) & 0x07; } + u32 getBasePlaneType() const { return (pBsd->mFlags >> 10) & 0x01; } + u32 getTilingS() const { return (pBsd->mFlags >> 25) & 0x01; } + u32 getTilingT() const { return (pBsd->mFlags >> 26) & 0x01; } + BOOL isGlblClrAnm() const { return pBsd->mFlags & 0x00001000; } + BOOL isGlblTexAnm() const { return pBsd->mFlags & 0x00004000; } + BOOL isPrjTex() const { return pBsd->mFlags & 0x00100000; } + BOOL isDrawFwdAhead() const { return pBsd->mFlags & 0x00200000; } + BOOL isDrawPrntAhead() const { return pBsd->mFlags & 0x00400000; } + BOOL isClipOn() const { return pBsd->mFlags & 0x00800000; } + BOOL isTexCrdAnm() const { return pBsd->mFlags & 0x01000000; } + BOOL isNoDrawParent() const { return pBsd->mFlags >> 27 & 1; } + BOOL isNoDrawChild() const { return pBsd->mFlags >> 28 & 1; } + + BOOL isPrmAnm() const { return pBsd->mClrFlg & 0x02; } + BOOL isEnvAnm() const { return pBsd->mClrFlg & 0x08; } + u32 getClrAnmType() const { return (pBsd->mClrFlg >> 4) & 0x07; } + s16 getClrAnmMaxFrm() const { return pBsd->mClrAnmFrmMax; } + void getPrmClr(GXColor* dst) const { *dst = pBsd->mClrPrm; } + void getPrmClr(s16 idx, GXColor* dst) const { *dst = mpPrmClrAnmTbl[idx]; } + void getEnvClr(GXColor* dst) const { *dst = pBsd->mClrEnv; } + void getEnvClr(s16 idx, GXColor* dst) const { *dst = mpEnvClrAnmTbl[idx]; } + + BOOL isTexAnm() const { return pBsd->mTexFlg & 0x01; } + u32 getTexAnmType() const { return (pBsd->mTexFlg >> 2) & 0x07; } + u8 getTexIdx() const { return pBsd->mTexIdx; } u8 getTexIdx(u8 idx) const { return mpTexIdxAnimTbl[idx]; } - f32 getBaseSizeX() const { return mpData->mBaseSizeX; } - f32 getBaseSizeY() const { return mpData->mBaseSizeY; } - u8 getClrLoopOfstMask() const { return mpData->mClrAnmRndmMask; } - u32 getClrLoopOfst(u32 param_1) const { return getClrLoopOfstMask() & param_1; } - u8 getTexLoopOfstMask() const { return mpData->mTexAnmRndmMask; } - u32 getTexLoopOfst(u8 param_1) const { return getTexLoopOfstMask() & param_1; } - u8 getLoopOfstValue() const { return mpData->mAnmRndm; } + f32 getBaseSizeX() const { return pBsd->mBaseSizeX; } + f32 getBaseSizeY() const { return pBsd->mBaseSizeY; } + u8 getClrLoopOfstMask() const { return pBsd->mClrAnmRndmMask; } + s32 getClrLoopOfst(u8 param_1) const { return getClrLoopOfstMask() & param_1; } + u8 getTexLoopOfstMask() const { return pBsd->mTexAnmRndmMask; } + s32 getTexLoopOfst(u8 param_1) const { return getTexLoopOfstMask() & param_1; } + u8 getLoopOfstValue() const { return pBsd->mAnmRndm; } f32 getIncTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[5]; } f32 getInitTransX() const { return ((f32*)mpTexCrdMtxAnmTbl)[0]; } @@ -124,10 +124,10 @@ public: f32 getInitScaleY() const { return ((f32*)mpTexCrdMtxAnmTbl)[3]; } f32 getIncRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[9]; } f32 getInitRot() const { return ((f32*)mpTexCrdMtxAnmTbl)[4]; } - u8 getTexAnmKeyNum() const { return mpData->mTexAnmNum; } + u8 getTexAnmKeyNum() const { return pBsd->texAnmKeyNum; } public: - /* 0x00 */ const JPABaseShapeData* mpData; + /* 0x00 */ const JPABaseShapeData* pBsd; /* 0x04 */ const void* mpTexCrdMtxAnmTbl; /* 0x08 */ const u8* mpTexIdxAnimTbl; /* 0x0C */ GXColor* mpPrmClrAnmTbl; diff --git a/include/JSystem/JParticle/JPADynamicsBlock.h b/include/JSystem/JParticle/JPADynamicsBlock.h index a27922913e..02b3961e5a 100644 --- a/include/JSystem/JParticle/JPADynamicsBlock.h +++ b/include/JSystem/JParticle/JPADynamicsBlock.h @@ -63,7 +63,7 @@ public: void init(); void create(JPAEmitterWorkData*); - void calc(JPAEmitterWorkData* work) { mpCalcVolumeFunc(work); } + void calc(JPAEmitterWorkData* work) const { mpCalcVolumeFunc(work); } s16 getStartFrame() const { return mpData->mStartFrame; } u32 getResUserWork() const { return mpData->mResUserWork; } @@ -71,32 +71,32 @@ public: u32 getVolumeType() const { return (mpData->mFlags >> 8) & 0x07; } u16 getDivNumber() const { return mpData->mDivNumber; } f32 getRateRndm() const { return mpData->mRateRndm; } - void getEmitterScl(JGeometry::TVec3<f32>* vec) const { - vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z); + void getEmitterScl(JGeometry::TVec3<f32>* vec) const { + vec->set(mpData->mEmitterScl.x, mpData->mEmitterScl.y, mpData->mEmitterScl.z); } - void getEmitterTrs(JGeometry::TVec3<f32>* vec) const { - vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z); + void getEmitterTrs(JGeometry::TVec3<f32>* vec) const { + vec->set(mpData->mEmitterTrs.x, mpData->mEmitterTrs.y, mpData->mEmitterTrs.z); } - void getEmitterDir(JGeometry::TVec3<f32>* vec) const { - vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z); + void getEmitterDir(JGeometry::TVec3<f32>* vec) const { + vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z); } - void getEmitterRot(JGeometry::TVec3<s16>* vec) const { - vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z); - } - s16 getMaxFrame() { return mpData->mMaxFrame; } - s16 getLifetime() { return mpData->mLifeTime; } - u16 getVolumeSize() { return mpData->mVolumeSize; } - f32 getRate() { return mpData->mRate; } - u8 getRateStep() { return mpData->mRateStep; } - f32 getVolumeSweep() { return mpData->mVolumeSweep; } - f32 getVolumeMinRad() { return mpData->mVolumeMinRad; } - f32 getInitVelOmni() { return mpData->mInitialVelOmni; } - f32 getInitVelAxis() { return mpData->mInitialVelAxis; } - f32 getInitVelDir() { return mpData->mInitialVelDir; } - f32 getInitVelDirSp() { return mpData->mSpread; } - f32 getInitVelRndm() { return mpData->mInitialVelRndm; } + void getEmitterRot(JGeometry::TVec3<s16>* vec) const { + vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z); + } + s16 getMaxFrame() const { return mpData->mMaxFrame; } + s16 getLifetime() const { return mpData->mLifeTime; } + u16 getVolumeSize() const { return mpData->mVolumeSize; } + f32 getRate() const { return mpData->mRate; } + u8 getRateStep() const { return mpData->mRateStep; } + f32 getVolumeSweep() const { return mpData->mVolumeSweep; } + f32 getVolumeMinRad() const { return mpData->mVolumeMinRad; } + f32 getInitVelOmni() const { return mpData->mInitialVelOmni; } + f32 getInitVelAxis() const { return mpData->mInitialVelAxis; } + f32 getInitVelDir() const { return mpData->mInitialVelDir; } + f32 getInitVelDirSp() const { return mpData->mSpread; } + f32 getInitVelRndm() const { return mpData->mInitialVelRndm; } f32 getInitVelRatio() const { return mpData->mInitialVelRatio; } - f32 getAirRes() { return mpData->mAirResist; } + f32 getAirRes() const { return mpData->mAirResist; } f32 getLifetimeRndm() const { return mpData->mLifeTimeRndm; } f32 getMomentRndm() const { return mpData->mMoment; } diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h index b79e6f9022..691096babe 100644 --- a/include/JSystem/JParticle/JPAEmitter.h +++ b/include/JSystem/JParticle/JPAEmitter.h @@ -115,7 +115,7 @@ public: void setStatus(u32 status) { mStatus |= status; } void clearStatus(u32 status) { mStatus &= ~status; } u32 checkStatus(u32 status) const { return (mStatus & status); } - bool checkFlag(u32 flag) const { return !!(mpRes->getDyn()->getFlag() & flag); } + u32 checkFlag(u32 flag) const { return pRes->getDyn()->getFlag() & flag; } u8 getResourceManagerID() const { return mResMgrID; } u8 getGroupID() const { return mGroupID; } u8 getDrawTimes() const { return mDrawTimes; } @@ -258,7 +258,7 @@ public: /* 0xD4 */ JPAList<JPABaseParticle> mAlivePtclChld; /* 0xE0 */ JPAList<JPABaseParticle>* mpPtclPool; /* 0xE4 */ JPAEmitterManager* mpEmtrMgr; - /* 0xE8 */ JPAResource* mpRes; + /* 0xE8 */ JPAResource* pRes; /* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack; /* 0xF0 */ JPAParticleCallBack* mpPtclCallBack; /* 0xF4 */ u32 mStatus; diff --git a/include/JSystem/JParticle/JPAExTexShape.h b/include/JSystem/JParticle/JPAExTexShape.h index 43175517ec..841b0e052c 100644 --- a/include/JSystem/JParticle/JPAExTexShape.h +++ b/include/JSystem/JParticle/JPAExTexShape.h @@ -33,8 +33,8 @@ public: 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 isUseIndirect() const { return mpData->mFlags & 0x01; } + BOOL isUseSecTex() const { return mpData->mFlags & 0x0100; } public: const JPAExTexShapeData* mpData; diff --git a/include/JSystem/JParticle/JPAFieldBlock.h b/include/JSystem/JParticle/JPAFieldBlock.h index 56a2de1d15..ccca533622 100644 --- a/include/JSystem/JParticle/JPAFieldBlock.h +++ b/include/JSystem/JParticle/JPAFieldBlock.h @@ -21,32 +21,27 @@ public: /* 0x04 */ JGeometry::TVec3<f32> mAccel; }; -class JPAFieldVortex : public JPAFieldBase { +class JPAFieldGravity : public JPAFieldBase { public: void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldVortex() {} - - /* 0x10 */ JGeometry::TVec3<f32> field_0x10; - /* 0x1C */ f32 field_0x1c; - /* 0x20 */ f32 field_0x20; + ~JPAFieldGravity() {} }; -class JPAFieldSpin : public JPAFieldBase { +class JPAFieldAir : public JPAFieldBase { public: void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldSpin() {} - - /* 0x10 */ JGeometry::TVec3<f32> field_0x10; - /* 0x1C */ JGeometry::TVec3<f32> field_0x1c; - /* 0x28 */ JGeometry::TVec3<f32> field_0x28; + ~JPAFieldAir() {} }; -class JPAFieldRandom : public JPAFieldBase { +class JPAFieldMagnet : public JPAFieldBase { public: + void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldRandom() {} + ~JPAFieldMagnet() {} + + /* 0x10 */ JGeometry::TVec3<f32> mDir; }; class JPAFieldNewton : public JPAFieldBase { @@ -59,20 +54,21 @@ public: /* 0x1C */ f32 mCutoff; }; -class JPAFieldMagnet : public JPAFieldBase { +class JPAFieldVortex : public JPAFieldBase { public: void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldMagnet() {} + ~JPAFieldVortex() {} - /* 0x10 */ JGeometry::TVec3<f32> mDir; + /* 0x10 */ JGeometry::TVec3<f32> field_0x10; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; }; -class JPAFieldGravity : public JPAFieldBase { +class JPAFieldRandom : public JPAFieldBase { public: - void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldGravity() {} + ~JPAFieldRandom() {} }; class JPAFieldDrag : public JPAFieldBase { @@ -92,11 +88,15 @@ public: /* 0x28 */ JGeometry::TVec3<f32> field_0x28; }; -class JPAFieldAir : public JPAFieldBase { +class JPAFieldSpin : public JPAFieldBase { public: void prepare(JPAEmitterWorkData*, JPAFieldBlock*); void calc(JPAEmitterWorkData*, JPAFieldBlock*, JPABaseParticle*); - ~JPAFieldAir() {} + ~JPAFieldSpin() {} + + /* 0x10 */ JGeometry::TVec3<f32> field_0x10; + /* 0x1C */ JGeometry::TVec3<f32> field_0x1c; + /* 0x28 */ JGeometry::TVec3<f32> field_0x28; }; // unknown name @@ -122,36 +122,36 @@ public: JPAFieldBlock(u8 const*, JKRHeap*); void init(JKRHeap*); - u32 getType() { return mpData->mFlags & 0xF; } - u32 getAddType() { return (mpData->mFlags >> 8) & 3; } - u32 getSttFlag() { return mpData->mFlags >> 16; } - bool checkStatus(u16 flag) { return flag & getSttFlag(); } + u32 getType() const { return mpData->mFlags & 0xF; } + u32 getAddType() const { return (mpData->mFlags >> 8) & 3; } + u32 getSttFlag() const { return mpData->mFlags >> 16; } + u32 checkStatus(u16 flag) { return flag & getSttFlag(); } f32 getMagRndm() const { return mpData->mMagRndm; } f32 getVal1() const { return mpData->mVal1; } - f32 getFadeInTime() { return mpData->mFadeInTime; } - f32 getFadeOutTime() { return mpData->mFadeOutTime; } - f32 getEnTime() { return mpData->mEnTime; } - f32 getDisTime() { return mpData->mDisTime; } - u8 getCycle() { return mpData->mCycle; } - f32 getFadeInRate() { return mFadeInRate; } - f32 getFadeOutRate() { return mFadeOutRate; } - JGeometry::TVec3<f32>& getPos() { return mPos; } - JGeometry::TVec3<f32>& getDir() { return mDir; } + f32 getFadeInTime() const { return mpData->mFadeInTime; } + f32 getFadeOutTime() const { return mpData->mFadeOutTime; } + f32 getEnTime() const { return mpData->mEnTime; } + f32 getDisTime() const { return mpData->mDisTime; } + u8 getCycle() const { return mpData->mCycle; } + f32 getFadeInRate() const { return mFadeInRate; } + f32 getFadeOutRate() const { return mFadeOutRate; } + const JGeometry::TVec3<f32>& getPos() const { return mPos; } + const JGeometry::TVec3<f32>& getDir() const { return mDir; } f32 getMag() const { return mMag; } - void getPosOrig(JGeometry::TVec3<f32>* pos) { pos->set(mpData->mPos); } - void getDirOrig(JGeometry::TVec3<f32>* dir) { dir->set(mpData->mDir); } - f32 getMagOrig() { return mpData->mMag; } + void getPosOrig(JGeometry::TVec3<f32>* pos) const { pos->set(mpData->mPos); } + void getDirOrig(JGeometry::TVec3<f32>* dir) const { dir->set(mpData->mDir); } + f32 getMagOrig() const { return mpData->mMag; } void initOpParam() { getPosOrig(&mPos); getDirOrig(&mDir); mMag = getMagOrig(); } - void prepare(JPAEmitterWorkData* work) { mpField->prepare(work, this); } - void calc(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { mpField->calc(work, this, ptcl); } + void prepare(JPAEmitterWorkData* work) { pFld->prepare(work, this); } + void calc(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { pFld->calc(work, this, ptcl); } private: /* 0x00 */ const JPAFieldBlockData* mpData; - /* 0x04 */ JPAFieldBase* mpField; + /* 0x04 */ JPAFieldBase* pFld; /* 0x08 */ f32 mFadeInRate; /* 0x0C */ f32 mFadeOutRate; /* 0x10 */ JGeometry::TVec3<f32> mPos; diff --git a/include/JSystem/JParticle/JPAKeyBlock.h b/include/JSystem/JParticle/JPAKeyBlock.h index e1591f1d26..07c1f57171 100644 --- a/include/JSystem/JParticle/JPAKeyBlock.h +++ b/include/JSystem/JParticle/JPAKeyBlock.h @@ -11,7 +11,10 @@ struct JPAKeyBlock { JPAKeyBlock(u8 const*); f32 calc(f32); - u8 getID() { return mDataStart[8]; } + u8 getID() const { return mDataStart[8]; } + u8 getKeyNum() const { return mDataStart[9]; } + BOOL isLoop() const { return mDataStart[11]; } + const f32* getKeyData() const { return field_0x4; } const u8* mDataStart; const f32* field_0x4; diff --git a/include/JSystem/JParticle/JPAList.h b/include/JSystem/JParticle/JPAList.h index cb02349c87..6f201b73b8 100644 --- a/include/JSystem/JParticle/JPAList.h +++ b/include/JSystem/JParticle/JPAList.h @@ -12,8 +12,8 @@ struct JPANode { JPANode() : mpPrev(NULL), mpNext(NULL) { } ~JPANode() {} - JPANode<T>* getPrev() { return mpPrev; } - JPANode<T>* getNext() { return mpNext; } + JPANode<T>* getPrev() const { return mpPrev; } + JPANode<T>* getNext() const { return mpNext; } T* getObject() { return &mData; } /* 0x00 */ JPANode<T>* mpPrev; @@ -48,8 +48,7 @@ struct JPAList { } else { mpLast = node; mpFirst = node; - node->mpPrev = NULL; - node->mpNext = NULL; + node->mpNext = node->mpPrev = NULL; } mNum++; @@ -75,8 +74,7 @@ struct JPAList { if (mNum == 1) { ret = mpFirst; - mpLast = NULL; - mpFirst = NULL; + mpFirst = mpLast = NULL; mNum--; } else if (mNum) { ret = mpFirst; @@ -93,8 +91,7 @@ struct JPAList { if (mNum == 1) { ret = mpLast; - mpLast = NULL; - mpFirst = NULL; + mpFirst = mpLast = NULL; mNum--; } else if (mNum) { ret = mpLast; @@ -120,8 +117,7 @@ struct JPAList { mpLast = node->mpPrev; mNum--; } else { - mpLast = NULL; - mpFirst = NULL; + mpFirst = mpLast = NULL; mNum--; } return node; diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index e6e0bec6f4..64d682cfa2 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -33,17 +33,15 @@ public: void getOffsetPosition(JGeometry::TVec3<f32>& pos) { pos.set(mOffsetPosition); } void getOffsetPosition(JGeometry::TVec3<f32>* pos) const { pos->set(mOffsetPosition); } u16 getRotateAngle() const { return mRotateAngle; } - void getGlobalPosition(JGeometry::TVec3<f32>& pos) const { pos.set(mPosition); } void getGlobalPosition(JGeometry::TVec3<f32>* pos) const { pos->set(mPosition); } f32 getParticleScaleX() const { return mParticleScaleX; } f32 getParticleScaleY() const { return mParticleScaleY; } void setStatus(u32 flag) { mStatus |= flag; } - u32 checkStatus(u32 flag) { return mStatus & flag; } + u32 checkStatus(u32 flag) const { return mStatus & flag; } void initStatus(u32 status) { mStatus = status; } void setInvisibleParticleFlag() { setStatus(8); } void setDeleteParticleFlag() { setStatus(2); } - void getVelVec(JGeometry::TVec3<f32>& vec) const { vec.set(mVelocity); } - void getLocalPosition(JGeometry::TVec3<f32>& vec) const { vec.set(mLocalPosition); } + void getVelVec(JGeometry::TVec3<f32>* vec) const { vec->set(mVelocity); } void getLocalPosition(JGeometry::TVec3<f32>* vec) const { vec->set(mLocalPosition); } void getBaseAxis(JGeometry::TVec3<f32>& vec) const { vec.set(mBaseAxis); } void getBaseAxis(JGeometry::TVec3<f32>* vec) const { vec->set(mBaseAxis); } diff --git a/include/JSystem/JParticle/JPAResource.h b/include/JSystem/JParticle/JPAResource.h index f07868208d..707725c9af 100644 --- a/include/JSystem/JParticle/JPAResource.h +++ b/include/JSystem/JParticle/JPAResource.h @@ -37,13 +37,13 @@ public: void calcWorkData_c(JPAEmitterWorkData*); void calcWorkData_d(JPAEmitterWorkData*); - JPABaseShape* getBsp() const { return mpBaseShape; } - JPAExtraShape* getEsp() const { return mpExtraShape; } - JPAChildShape* getCsp() const { return mpChildShape; } - JPAExTexShape* getEts() const { return mpExTexShape; } - JPADynamicsBlock* getDyn() const { return mpDynamicsBlock; } + JPABaseShape* getBsp() const { return pBsp; } + JPAExtraShape* getEsp() const { return pEsp; } + JPAChildShape* getCsp() const { return pCsp; } + JPAExTexShape* getEts() const { return pEts; } + JPADynamicsBlock* getDyn() const { return pDyn; } - u32 getTexIdx(u32 idx) const { return mpTDB1[idx]; } + const u16 getTexIdx(u8 idx) { return mpTDB1[idx]; } u16 getUsrIdx() const { return mUsrIdx; } public: @@ -57,18 +57,18 @@ public: /* 0x14 */ ParticleFunc* mpCalcParticleChildFuncList; /* 0x18 */ ParticleFunc* mpDrawParticleChildFuncList; - /* 0x1C */ JPABaseShape* mpBaseShape; - /* 0x20 */ JPAExtraShape* mpExtraShape; - /* 0x24 */ JPAChildShape* mpChildShape; - /* 0x28 */ JPAExTexShape* mpExTexShape; - /* 0x2C */ JPADynamicsBlock* mpDynamicsBlock; - /* 0x30 */ JPAFieldBlock** mpFieldBlocks; - /* 0x34 */ JPAKeyBlock** mpKeyBlocks; + /* 0x1C */ JPABaseShape* pBsp; + /* 0x20 */ JPAExtraShape* pEsp; + /* 0x24 */ JPAChildShape* pCsp; + /* 0x28 */ JPAExTexShape* pEts; + /* 0x2C */ JPADynamicsBlock* pDyn; + /* 0x30 */ JPAFieldBlock** ppFld; + /* 0x34 */ JPAKeyBlock** ppKey; /* 0x38 */ u16 const* mpTDB1; /* 0x3C */ u16 mUsrIdx; - /* 0x3E */ u8 mFieldBlockNum; - /* 0x3F */ u8 mKeyBlockNum; - /* 0x40 */ u8 mTDB1Num; + /* 0x3E */ u8 fldNum; + /* 0x3F */ u8 keyNum; + /* 0x40 */ u8 texNum; /* 0x41 */ u8 mpCalcEmitterFuncListNum; /* 0x42 */ u8 mpDrawEmitterFuncListNum; /* 0x43 */ u8 mpDrawEmitterChildFuncListNum; diff --git a/include/JSystem/JParticle/JPAResourceManager.h b/include/JSystem/JParticle/JPAResourceManager.h index 60a027a6b9..068858c5a6 100644 --- a/include/JSystem/JParticle/JPAResourceManager.h +++ b/include/JSystem/JParticle/JPAResourceManager.h @@ -21,16 +21,16 @@ public: void registTex(JPATexture*); u32 getResUserWork(u16) const; - void load(u16 idx, GXTexMapID texMapID) { mpTexArr[idx]->load(texMapID); } + void load(u16 idx, GXTexMapID texMapID) { pTexAry[idx]->load(texMapID); } public: /* 0x00 */ JKRHeap* mpHeap; - /* 0x04 */ JPAResource** mpResArr; - /* 0x08 */ JPATexture** mpTexArr; - /* 0x0C */ u16 mResMax; - /* 0x0E */ u16 mResNum; - /* 0x10 */ u16 mTexMax; - /* 0x12 */ u16 mTexNum; + /* 0x04 */ JPAResource** pResAry; + /* 0x08 */ JPATexture** pTexAry; + /* 0x0C */ u16 resMaxNum; + /* 0x0E */ u16 resRegNum; + /* 0x10 */ u16 texMaxNum; + /* 0x12 */ u16 texRegNum; }; #endif /* JPARESOURCEMANAGER_H */ |
