diff options
Diffstat (limited to 'src/JSystem')
| -rw-r--r-- | src/JSystem/JParticle/JPAChildShape.cpp | 8 | ||||
| -rw-r--r-- | src/JSystem/JParticle/JPAExTexShape.cpp | 8 | ||||
| -rw-r--r-- | src/JSystem/JParticle/JPAExtraShape.cpp | 9 |
3 files changed, 18 insertions, 7 deletions
diff --git a/src/JSystem/JParticle/JPAChildShape.cpp b/src/JSystem/JParticle/JPAChildShape.cpp index 18a2e18f..979b5df2 100644 --- a/src/JSystem/JParticle/JPAChildShape.cpp +++ b/src/JSystem/JParticle/JPAChildShape.cpp @@ -7,7 +7,13 @@ #include "JSystem/JParticle/JPAParticle.h" #include "JSystem/JParticle/JPAEmitter.h" #include "rvl/GX.h" -#include "rvl/OS.h" + +// SS addition +void fn_8031DBA0(JPAEmitterWorkData* work) { + if (work->mpEmtr->mAlivePtclBase.getNum() == 0) { + work->mpEmtr->deleteAllParticle(); + } +} /* 8027AEBC-8027AFDC 2757FC 0120+00 0/0 1/1 0/0 .text JPARegistChildPrmEnv__FP18JPAEmitterWorkData */ diff --git a/src/JSystem/JParticle/JPAExTexShape.cpp b/src/JSystem/JParticle/JPAExTexShape.cpp index ce5fd07d..18b0a01e 100644 --- a/src/JSystem/JParticle/JPAExTexShape.cpp +++ b/src/JSystem/JParticle/JPAExTexShape.cpp @@ -6,15 +6,19 @@ #include "JSystem/JParticle/JPAExTexShape.h" #include "JSystem/JParticle/JPAResourceManager.h" #include "JSystem/JParticle/JPAEmitter.h" +#include "rvl/MTX.h" #include "rvl/GX.h" /* 8027B040-8027B13C 275980 00FC+00 0/0 1/1 0/0 .text JPALoadExTex__FP18JPAEmitterWorkData */ void JPALoadExTex(JPAEmitterWorkData* work) { + Mtx m; JPAExTexShape* ets = work->mpRes->getEts(); - + GXTexCoordID secTexCoordID = GX_TEXCOORD1; if (ets->isUseIndirect()) { - GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, + MTXIdentity(m); + GXLoadTexMtxImm(m, GX_TEXMTX2, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX2, GX_FALSE, GX_PTIDENTITY); u8 texIdx = ets->getIndTexIdx(); work->mpResMgr->load(work->mpRes->getTexIdx(texIdx), GX_TEXMAP2); diff --git a/src/JSystem/JParticle/JPAExtraShape.cpp b/src/JSystem/JParticle/JPAExtraShape.cpp index 0c0e8bf5..ca825d31 100644 --- a/src/JSystem/JParticle/JPAExtraShape.cpp +++ b/src/JSystem/JParticle/JPAExtraShape.cpp @@ -71,23 +71,24 @@ void JPACalcScaleAnmRepeatY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { * JPACalcScaleAnmReverseX__FP18JPAEmitterWorkDataP15JPABaseParticle */ void JPACalcScaleAnmReverseX(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { JPAExtraShape* esp = work->mpRes->getEsp(); - s32 cycle = ptcl->mAge / esp->getScaleAnmCycleX(); + f32 cycle = ptcl->mAge / esp->getScaleAnmCycleX() & 1; f32 base = (ptcl->mAge % esp->getScaleAnmCycleX()) / (f32)esp->getScaleAnmCycleX(); - work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f)); + work->mScaleAnm = base + (cycle * (1.0f - base * 2.0f)); } /* 8027AB7C-8027AC10 2754BC 0094+00 0/0 1/1 0/0 .text * JPACalcScaleAnmReverseY__FP18JPAEmitterWorkDataP15JPABaseParticle */ void JPACalcScaleAnmReverseY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { JPAExtraShape* esp = work->mpRes->getEsp(); - s32 cycle = ptcl->mAge / esp->getScaleAnmCycleY(); + f32 cycle = ptcl->mAge / esp->getScaleAnmCycleY() & 1; f32 base = (ptcl->mAge % esp->getScaleAnmCycleY()) / (f32)esp->getScaleAnmCycleY(); - work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f)); + work->mScaleAnm = base + (cycle * (1.0f - base * 2.0f)); } /* 8027AC10-8027AC98 275550 0088+00 0/0 1/1 0/0 .text * JPACalcAlphaAnm__FP18JPAEmitterWorkDataP15JPABaseParticle */ void JPACalcAlphaAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + 0.0f; // float order JPAExtraShape* esp = work->mpRes->getEsp(); f32 alpha; if (ptcl->mTime < esp->getAlphaInTiming()) { |
