mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-15 20:40:19 -04:00
particle/JGeometry progress
This commit is contained in:
@@ -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
@@ -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) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user