mirror of
https://github.com/zeldaret/ss
synced 2026-07-26 14:31:49 -04:00
JPAExtraShape, JPAChildShape OK
This commit is contained in:
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user