particle/JGeometry progress

This commit is contained in:
LagoLunatic
2023-12-27 18:12:09 -05:00
parent f0958eab10
commit 12b821eca2
6 changed files with 101 additions and 126 deletions
+2 -22
View File
@@ -643,25 +643,15 @@ void JPADraw::setDrawCalcVisitors(const JPADraw::JPADrawVisitorDefFlags& flags)
/* 8026ADB0-8026B3DC .text setParticleClipBoard__7JPADrawFv */
void JPADraw::setParticleClipBoard() {
/* Nonmatching - top switch */
switch (dc.pbsp->getType()) {
case JPABaseShape::JPAType_Billboard:
break;
case JPABaseShape::JPAType_DirBillboard:
PSMTXIdentity(cb.mDrawMtx);
break;
case JPABaseShape::JPAType_YBillboard:
loadYBBMtx(cb.mDrawMtxPtr);
break;
case JPABaseShape::JPAType_Point:
case JPABaseShape::JPAType_Line:
case JPABaseShape::JPAType_Direction:
case JPABaseShape::JPAType_DirectionCross:
case JPABaseShape::JPAType_Stripe:
case JPABaseShape::JPAType_StripeCross:
case JPABaseShape::JPAType_Rotation:
case JPABaseShape::JPAType_RotationCross:
default:
MTXCopy(cb.mDrawMtxPtr, cb.mDrawMtx);
break;
}
@@ -739,25 +729,15 @@ void JPADraw::setParticleClipBoard() {
/* 8026B3DC-8026B938 .text setChildClipBoard__7JPADrawFv */
void JPADraw::setChildClipBoard() {
/* Nonmatching - top switch */
switch (dc.pssp->getType()) {
case JPABaseShape::JPAType_Billboard:
break;
case JPABaseShape::JPAType_DirBillboard:
PSMTXIdentity(cb.mDrawMtx);
break;
case JPABaseShape::JPAType_YBillboard:
loadYBBMtx(cb.mDrawMtxPtr);
break;
case JPABaseShape::JPAType_Point:
case JPABaseShape::JPAType_Line:
case JPABaseShape::JPAType_Direction:
case JPABaseShape::JPAType_DirectionCross:
case JPABaseShape::JPAType_Stripe:
case JPABaseShape::JPAType_StripeCross:
case JPABaseShape::JPAType_Rotation:
case JPABaseShape::JPAType_RotationCross:
default:
MTXCopy(cb.mDrawMtxPtr, cb.mDrawMtx);
break;
}
+46 -11
View File
@@ -12,6 +12,11 @@
#include "SSystem/SComponent/c_malloc.h"
#include "m_Do/m_Do_lib.h"
static f32 dummy_2100[3] = {1.0f, 1.0f, 1.0f};
static f32 dummy_2080[3] = {1.0f, 1.0f, 1.0f};
static Vec dummy_3569;
/* 8007A4D8-8007A514 .text __ct__18dPa_modelEmitter_cFv */
dPa_modelEmitter_c::dPa_modelEmitter_c() {
cNd_ForcedClear(this);
@@ -557,8 +562,47 @@ void dPa_waveEcallBack::remove() {
}
/* 8007E2BC-8007E484 .text executeAfter__17dPa_waveEcallBackFP14JPABaseEmitter */
void dPa_waveEcallBack::executeAfter(JPABaseEmitter*) {
/* Nonmatching */
void dPa_waveEcallBack::executeAfter(JPABaseEmitter* emitter) {
/* Nonmatching - how to make TVec3 only exist in registers without being stored to the stack? */
emitter->getEmitterAxis(mRotMtx[0], mRotMtx[1], mRotMtx[2]);
if (mState != 0) {
emitter->setDirectionalSpeed(0.0f);
if (mFadeTimer > 0) {
mFadeTimer--;
} else {
remove();
}
return;
}
JGeometry::TVec3<f32> delta;
emitter->getGlobalTranslation(delta); // TODO
emitter->setGlobalTranslation(*mpPos);
delta.sub(*mpPos); // TODO
f32 vel = delta.length();
if (vel >= mMaxParticleVelocity) {
vel = mMaxParticleVelocity;
}
f32 speed = mVelFade1 * vel * mVelFade2;
JGeometry::TVec3<s16> rot;
rot.x = 0;
rot.y = mpRot->y;
rot.z = 0;
emitter->setGlobalRotation(rot);
if (fabsf(speed - mVel) > mVelSpeed) {
if (speed - mVel > 0.0f) {
speed = mVel + mVelSpeed;
} else {
speed = mVel - mVelSpeed;
}
}
emitter->setDirectionalSpeed(speed);
mVel = speed;
}
/* 8007E484-8007E804 .text draw__17dPa_waveEcallBackFP14JPABaseEmitter */
@@ -647,12 +691,3 @@ void dPa_stripesEcallBack::setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8)
/* 8007FAE8-8007FAEC .text setup__22dPa_selectTexEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void dPa_selectTexEcallBack::setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) {
}
/* 8007FF78-8007FFA8 .text draw__21dPa_setColorEcallBackFP14JPABaseEmitter */
void dPa_setColorEcallBack::draw(JPABaseEmitter*) {
GXSetTevColor(GX_TEVREG1, mColor);
}
/* 8007FFA8-8007FFAC .text setup__21dPa_setColorEcallBackFP14JPABaseEmitterPC4cXyzPC5csXyzSc */
void dPa_setColorEcallBack::setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) {
}